方便从各种小组发布信息中找到自己需要的信息,减少肉眼过滤关键字的工作;
-
首先需要安装python和scrapy环境, 参考:
https://docs.scrapy.org/en/latest/intro/install.html
; -
项目目录下执行命令:
scrapy crawl douban -a start_url=http://www.douban.com/group/xxxxx/discussion -a max_page=30 -a search_strs='XXX,XX' -a proxy='http://xxx.xxx.xxx.xxx:xxxx'
其中proxy
参数可选,start_url
为豆瓣小组第一页的路径,注意一定是带有页码的第一页,max_size
为最多查询的页数,search_strs
为过滤的关键字,以,
隔开,强烈建议配置proxy
以防IP被封禁; -
运行结束后同一目录下会生成一个
output.html
文件,使用浏览器打开即可。你也可以使用docker来安装scrapy:
-
下载安装docker,参考
https://docs.docker.com/get-docker/
,根据操作系统选择安装docker; -
项目路径下的Dockerfile已经创建好了scrapy的镜像文件,只需要在此目录下执行
docker image build -t scrapy .
即可创建名为scrapy的docker镜像; -
执行
docker run -v /xxxx/xxx/doubanSpider:/usr/src/app/spider -w /usr/src/app/spider scrapy scrapy crawl douban -a start_url=https://www.douban.com/group/xxxxx/discussion -a search_strs='xxx,xx' -a max_page=50 -a proxy='xxx.xxx.xxx.xxx:xxxx'
命令即可启动查询程序,其中/xxxx/xxx/doubanSpider
为项目所在目录,其余参数含义见上文,运行完毕后同样会在此目录下生成output.htlm
文件,使用浏览器打开即可。
-
豆瓣更新后未登陆用户不能查看小组较大页码的页面,爬取过程中会跳转到登陆页面。
解决方法:在浏览器中使用自己的账号登陆,通过开发者工具找到Cookies,找到其中dbcl2
的值,在爬虫启动参数中增加:
-a cookies='{"dbcl2":"xxxxxxyour_cookie_valuexxxxx"}'
, cookies格式为json,也可尝试添加其他cookie,我试着加这个就可以了。。