爬蟲遇到空白頁

大約在兩個月前,京東動態加載的評論數據還是可以正常訪問的,可是有人在我關於京東評論爬蟲教程中評論之後我才發現,評論數據頁面沒法正常查看了。

其實在京東的robots協議中就包含了禁止訪問含"?"的url,如下圖所示
在這裏插入圖片描述
但之前一直沒有什麼反爬機制,導致我們這些小白們都拿京東來練手,這其實也影響了其網站的正常運作。因此建議在使用爬蟲時注意訪問不要太頻繁。

原因分析:

首先,在確定url沒錯的情況下,首先想到的肯定是有反爬蟲機制。
常見的反爬:要求有登陸狀態(例如淘寶)、訪問頻次檢測等
常用的策略:構造cookie、更換瀏覽器、使用代理ip、selenium模擬點擊等
通過抓包分析之後,這種反爬叫做網頁referer,它能夠記錄你訪問新網頁前網站的網址,Chrome刷新網頁,按F12在network中查看Referer上一個網頁地址
在這裏插入圖片描述
用這種方式可以查看到直接用動態生成的url訪問京東評論頁的referer並不是合理的,因此被識別出來,返回了空白頁(當然也有可能是其他反爬蟲)。

改進方法:

這裏以python代碼爲例,討論應對Referer反爬蟲

import requests

url = "https://sclub.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv16247&productId=100000177760&score=0&sortType=5&page=6&pageSize=10&isShadowSku=0&rid=0&fold=1"
headers = {
    'Accept': '*/*',
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36',
    'Referer':"https://item.jd.com/100000177760.html#comment"}
r = requests.get(url,headers=headers)
print(r.text)

結果如下
在這裏插入圖片描述
通過這樣的方式,就可以繞開Referer反爬機制,其他的反反爬蟲方法也大多數都是通過構造請求頭headers來實現,快去試一試吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章