本文實例講述了Python3爬蟲學習之應對網站反爬蟲機制的方法。分享給大家供大家參考,具體如下:
如何應對網站的反爬蟲機制
在訪問某些網站的時候,網站通常會用判斷訪問是否帶有頭文件來鑒別該訪問是否為爬蟲,用來作為反爬取的一種策略。
例如打開搜狐首頁,先來看一下Chrome的頭信息(F12打開開發者模式)如下:
如圖,訪問頭信息中顯示了瀏覽器以及系統的信息(headers所含信息眾多,具體可自行查詢)
Python中urllib中的request模塊提供了模擬瀏覽器訪問的功能,代碼如下:
from urllib import requesturl = 'http://www.baidu.com'# page = request.Request(url)# page.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36')headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}page = request.Request(url, headers=headers)page_info = request.urlopen(page).read().decode('utf-8')print(page_info) 可以通過add_header(key, value) 或者直接以參數的形式和URL一起請求訪問,
urllib.request.Request()urllib.request.Request(url, data=None, headers={}, origin_req_host=None, unverifiable=False, method=None) 其中headers是一個字典,通過這種方式可以將爬蟲模擬成瀏覽器對網站進行訪問。
https://docs.python.org/3/library/urllib.request.html?highlight=request#module-urllib.request
希望本文所述對大家Python程序設計有所幫助。
新聞熱點
疑難解答