摘要:國家企業信用公示系統的爬取網站分析獲取首頁通過直接請求網站首頁,返回錯誤提示碼,返回結果是代碼。驗證碼識別開發者文檔代碼結果查詢企業在首頁的源代碼中,有一句注釋偽造極驗變量百度成功獲取到結果鏈接國家企業信用公示系統爬取
國家企業信用公示系統的爬取 1. 網站分析 1.1 獲取首頁
通過 requests.get 直接請求網站首頁,返回 521 錯誤提示碼,返回結果是js代碼。這是采用樂加速樂反爬技術,在訪問前先判斷客戶端的cookie是否正確,如果不正確,返回521狀態碼和一段js代碼,并且進行set-cookie操作,返回的js代碼經過瀏覽器執行又會生成新的cookie,這兩個cookie一起發送給服務器,才會返回正確的網頁內容。
解決方法:
通過python的 execjs 執行返回的js,拿到新的cookie,和第一次請求的cookie一起發送給服務器。
具體操作:
response = self.session.get(self.cookie_url) js_code1 = response.text print(js_code1) print(response.cookies)
輸出
]>
對這段代碼進行js反混淆,得到
對js代碼進行格式化處理,再調用python的execjs執行這段代碼,如下所示:
js_code1 = js_code1.rstrip(" ") js_code1 = js_code1.replace("", "") js_code1 = js_code1.replace("