国家企业信用信息公示系统爬取
國家企業(yè)信用信息公示系統(tǒng)爬取
- 前言
- 反爬背景
- 測試
- 爬取策略
- 具體流程
- 流程圖
- 效果圖
前言
具體的分析爬取過程這邊就直接省略了,不會分析的小伙伴直接百度下,網(wǎng)上有很多介紹細節(jié)的,我這邊只要把我爬取中重要的幾個環(huán)節(jié)寫一下,加深下記憶,也給大家一個參考。
聲明:我的爬蟲程序是用C#寫的,還有滑動和點序驗證碼直接對接的是第三方接口完成。
反爬背景
企業(yè)國家企業(yè)信用信息公示系統(tǒng)出現(xiàn)了大量反爬技術手段使得爬取網(wǎng)站信息變得非常困難,具體的反爬手段包括:加密混淆的js文件,IP封鎖,驗證碼識別(滑動和語序點擊并存),useragent檢查,多重url拼接cookie等。
測試
1.同一個ip火狐被封,谷歌沒被封。
2.正常訪問網(wǎng)站會出現(xiàn)521報錯,刷新不出數(shù)據(jù),空白頁的情況
爬取策略
繞開驗證碼直接對接驗證碼的接口,然后直接封裝需要的cookie進行偽裝訪問列表界面,解析出企業(yè)詳情頁的鏈接,然后依次去下載。
具體流程
1. 訪問http://www.gsxt.gov.cn/SearchItemCaptcha獲取名為__jsluid的cookie值和加密的JS然后通過兩次解密JS獲取名為__jsl_clearance的cookie值。
2. 用第1步的兩個cookie值再次訪問http://www.gsxt.gov.cn/SearchItemCaptcha,得到名為SECTOKEN,JSESSIONID,tlb_的cookie值和challenge、gt兩個參數(shù)。
3. 發(fā)送第2步的challenge,gt參數(shù)到驗證碼識別接口,獲取validate參數(shù)(調用的是外部的驗證碼接口)。
4. 訪問http://www.gsxt.gov.cn/corp-query-custom-geetest-image.gif?v=54,V(參數(shù)是當前時間分鐘和秒的累加數(shù)),得到ASCII碼的JS語句,解析JS語句得到參數(shù)location_inf。
5. 訪問http://www.gsxt.gov.cn/corp-query-geetest-validate-input.html?token=(參數(shù)是第4步的location_inf)得到ASCII碼的JS語句,解析JS語句得到參數(shù)token
6. 拼接以上獲得的參數(shù),tab參數(shù)固定、province參數(shù)為空即可、其他參數(shù)填入前面動態(tài)獲取的數(shù)據(jù)即可。
postData={ ‘tab’:‘ent_tab’, ‘province’:’’, ‘geetest_challenge’:challenge, ‘geetest_validate’:validate], ‘geetest_seccode’:validate+’|jordan’, ‘token’:token, ‘searchword’:keyword }
訪問http://www.gsxt.gov.cn/corp-query-search-advancetest.html提交post請求獲取列表頁面拿到需要的公司的各個詳情頁鏈接。
7. 帶著所有cookie去訪問第6步的詳情頁鏈接抓取到需要的內容。
流程圖
具體的代碼就不貼了,太繁了。
效果圖
平時不怎么上CSDN,這次上來看到好幾個同學讓我發(fā)代碼,我也不一一發(fā)了,自己去下吧,供大家參考的小demo。
https://download.csdn.net/download/huanxiao8512/11191333添加鏈接描述
資源被CSDN官方刪掉了,理由是違規(guī),我換個地方,這個是19年的demo,需要的自己去下吧!https://item.taobao.com/item.htm?ft=t&id=618712985216
總結
以上是生活随笔為你收集整理的国家企业信用信息公示系统爬取的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据结构杂谈(六)——队列
- 下一篇: 将权限授予文件夹和程序集