/Wenshu_Spider

:rainbow:Wenshu_Spider-Scrapy框架爬取**裁判文书网案件数据(2019-1-9最新版)

Primary LanguagePythonMIT LicenseMIT

Scrapy框架爬取**裁判文书网案件数据 enter image description here

**裁判文书网 - http://wenshu.court.gov.cn/

Author 😎Henryhaohao😎
Email ♥️1073064953@qq.com♥️

🐬声明

软件均仅用于学习交流,请勿用于任何商业用途!感谢大家!

🐬介绍

该项目为Scrapy框架爬取**裁判文书网案件数据(2018-10-20最新版)

  • 项目文件: Wenshu_Project
  • 运行须知:

数据库配置 : 运行前根据自己需要修改settings.py中的MongoDB数据库的配置

反爬问题 : 由于文书网的反爬监控很严格(一级验证码,二级验证码,JavaScript反爬,IP检测...),所有采用阿布云动态隧道代理方案,每一次request请求都是不同的IP,这样就不会触发反爬检测了~:sunglasses:。还是挺好用的,基本上每个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;如果想爬取更快,可以加大代理请求数(当然是要money滴~),最高可以加到100的请求数,我滴天呀,那得多快啊!我现在的速度大概每秒爬取4个案件,加到100的话,估计每秒80个,一分钟4800个,一小时288000,一天就是6912000,目前总量5千4百万,大概8~9天就能爬完,如果在加上redis分布式的话,哇,不敢想象!:yum:

🐬运行环境

  • 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

🐬相关截图

  • 运行过程

    enter image description here
  • 数据截图

    enter image description here
  • 阿布云

    enter image description here enter image description here

🐬总结

最后,如果你觉得这个项目不错或者对你有帮助,给个Star呗,也算是对我学习路上的一种鼓励!
哈哈哈,感谢大家!笔芯哟~
💘💘