方便从各种小组发布信息中找到自己需要的信息,减少肉眼过滤关键字的工作;
-
首先需要安装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,我试着加这个就可以了。。