项目Github地址: https://github.com/Henryhaohao/Wenshu_Spider
中国裁判文书网 - http://wenshu.court.gov.cn/
Author | Henryhaohao |
---|---|
1073064953@qq.com |
免责声明
软件均仅用于学习交流,请勿用于任何商业用途!感谢大家!
项目介绍
该项目为Scrapy框架爬取中国裁判文书网案件数据(2018-10-20最新版)
- 项目Github地址: https://github.com/Henryhaohao/Wenshu_Spider
- 项目文件: Wenshu_Project
- 运行须知:
数据库配置 : 运行前根据自己需要修改settings.py中的MongoDB数据库的配置
反爬问题 : 由于文书网的反爬监控很严格(一级验证码,二级验证码,JavaScript反爬,IP检测...),所有采用阿布云动态隧道代理方案,每一次request请求都是不同的IP,这样就不会触发反爬检测了。还是挺好用的,基本上每个IP都可以用,主要也还方便,直接用它的代理服务器发出请求,不用像一般的代理IP那样还需要取出IP,再代入IP进行请求。代理相关配置在middlewares.py的类ProxyMiddleware中。
爬取策略问题 : 现在的文书网总量已经高达5千多万份了,但是每个筛选条件下只能查看20页,每页10条。本项目以爬取1996-2000年的所有文书为例,大家有好的爬取方案,可以自行修改Param参数即可。
速度问题 : 配置在setting.py中:DOWNLOAD_DELAY = 0(无delay实现请求0延时);CONCURRENT_REQUESTS_PER_SPIDER = 5 (开启线程数为5);因为我用的代理配置是默认的每秒5个请求数,所以在此设置线程数为5;如果想爬取更快,可以加大代理请求数,最高可以加到100的请求数,我滴天呀,那得多快啊!我现在的速度大概每秒爬取4个案件,加到100的话,估计每秒80个,一分钟4800个,一小时288000,一天就是6912000,目前总量5千4百万,大概8~9天就能爬完,如果在加上redis分布式的话,哇,不敢想象!
运行环境
-
Version: Python3
-
JS解析环境: Nodejs
有不少小伙伴向我反映运行后报错:execjs._exceptions.ProgramError: TypeError: 'key' 为 null 或不是对象
解决方案如下:
如果pyexecjs包没问题的话,那就是没有安装nodejs的问题; 因为你没有安装nodejs的话默认js解析环境是JScript, 但是项目中的js代码有的地方需要node环境才能运行, 所以需要装一下Nodejs再运行就好了;
注意: nodejs安装完成后记得把IDE关闭重新打开,比如pycharm,不然IDE不会监测到jscript引擎的变化,导致依然报错
关于NodeJs安装可以参考这篇文章: https://www.cnblogs.com/liuqiyun/p/8133904.html
安装依赖库
pip3 install -r requirements.txt
存储数据库
Database: MongoDB
相关截图
- 运行过程
- 数据截图
- 阿布云