項目Github地址: https://github.com/Henryhaohao/Wenshu_Spider
中國裁判文書網(wǎng) - http://wenshu.court.gov.cn/
Author | Henryhaohao |
---|---|
1073064953@qq.com |
免責(zé)聲明
軟件均僅用于學(xué)習(xí)交流吱涉,請勿用于任何商業(yè)用途刹泄!感謝大家!
項目介紹
該項目為Scrapy框架爬取中國裁判文書網(wǎng)案件數(shù)據(jù)(2018-10-20最新版)
- 項目Github地址: https://github.com/Henryhaohao/Wenshu_Spider
- 項目文件: Wenshu_Project
- 運行須知:
數(shù)據(jù)庫配置 : 運行前根據(jù)自己需要修改settings.py中的MongoDB數(shù)據(jù)庫的配置
反爬問題 : 由于文書網(wǎng)的反爬監(jiān)控很嚴(yán)格(一級驗證碼,二級驗證碼,JavaScript反爬,IP檢測...),所有采用阿布云動態(tài)隧道代理方案,每一次request請求都是不同的IP,這樣就不會觸發(fā)反爬檢測了特石。還是挺好用的,基本上每個IP都可以用,主要也還方便,直接用它的代理服務(wù)器發(fā)出請求,不用像一般的代理IP那樣還需要取出IP,再代入IP進(jìn)行請求。代理相關(guān)配置在middlewares.py的類ProxyMiddleware中乞旦。
爬取策略問題 : 現(xiàn)在的文書網(wǎng)總量已經(jīng)高達(dá)5千多萬份了,但是每個篩選條件下只能查看20頁,每頁10條顶瞳。本項目以爬取1996-2000年的所有文書為例,大家有好的爬取方案,可以自行修改Param參數(shù)即可焰络。
速度問題 : 配置在setting.py中:DOWNLOAD_DELAY = 0(無delay實現(xiàn)請求0延時);CONCURRENT_REQUESTS_PER_SPIDER = 5 (開啟線程數(shù)為5);因為我用的代理配置是默認(rèn)的每秒5個請求數(shù),所以在此設(shè)置線程數(shù)為5;如果想爬取更快,可以加大代理請求數(shù),最高可以加到100的請求數(shù),我滴天呀,那得多快靶恰!我現(xiàn)在的速度大概每秒爬取4個案件,加到100的話,估計每秒80個,一分鐘4800個,一小時288000,一天就是6912000,目前總量5千4百萬,大概8~9天就能爬完,如果在加上redis分布式的話,哇,不敢想象铭污!
運行環(huán)境
-
Version: Python3
-
JS解析環(huán)境: Nodejs
有不少小伙伴向我反映運行后報錯:execjs._exceptions.ProgramError: TypeError: 'key' 為 null 或不是對象
解決方案如下:
如果pyexecjs包沒問題的話,那就是沒有安裝nodejs的問題; 因為你沒有安裝nodejs的話默認(rèn)js解析環(huán)境是JScript, 但是項目中的js代碼有的地方需要node環(huán)境才能運行, 所以需要裝一下Nodejs再運行就好了;
注意: nodejs安裝完成后記得把IDE關(guān)閉重新打開磅网,比如pycharm傻盟,不然IDE不會監(jiān)測到j(luò)script引擎的變化,導(dǎo)致依然報錯
關(guān)于NodeJs安裝可以參考這篇文章: https://www.cnblogs.com/liuqiyun/p/8133904.html
安裝依賴庫
pip3 install -r requirements.txt
存儲數(shù)據(jù)庫
Database: MongoDB
相關(guān)截圖
- 運行過程
- 數(shù)據(jù)截圖
- 阿布云