1. 程式人生 > 程式設計 >Python反爬蟲偽裝瀏覽器進行爬蟲

Python反爬蟲偽裝瀏覽器進行爬蟲

對於爬蟲中部分網站設定了請求次數過多後會封殺ip,現在模擬瀏覽器進行爬蟲,也就是說讓伺服器認識到訪問他的是真正的瀏覽器而不是機器操作

簡單的直接新增請求頭,將瀏覽器的資訊在請求資料時傳入:

開啟瀏覽器--開啟開發者模式--請求任意網站

如下圖:找到請求的的名字,開啟後檢視headers欄,找到User-Agent,複製。然後新增到請求頭中

Python反爬蟲偽裝瀏覽器進行爬蟲

程式碼如下:

import requests
url = 'https://www.baidu.com'
headers ={
    'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML,like Gecko) '
           'Chrome/65.0.3325.181 Safari/537.36'
    }
rq = requests.get(url=url,headers=headers)
print(rq.text)

更深的偽裝瀏覽器,新增多個瀏覽器資訊,每次請求的時候隨機發送瀏覽器資訊,讓伺服器瞭解不是一個瀏覽器一直在訪問,(可以百度查詢user-agent)

程式碼如下:

import requests
import random

url = 'https://www.baidu.com'
headers_lists =(
    'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML,like Gecko) '
           'Chrome/65.0.3325.181 Safari/537.36','Mozilla/4.0(compatible;MSIE7.0;WindowsNT5.1;Maxthon2.0','Opera/9.80(Android2.3.4;Linux;Operamobi/adr-1107051709;U;zh-cn)Presto/2.8.149Version/11.10','Mozilla/5.0(WindowsNT6.1;rv:2.0.1)Gecko/20100101Firefox/4.0.1','Mozilla/5.0(Android;Linuxarmv7l;rv:5.0)Gecko/Firefox/5.0fennec/5.0',)

rq = requests.get(url=url,headers={'User-Agent':random.choice(headers_lists)})
print(rq.text)

完整的請求體解釋:

以下是筆者訪問百度的請求體。

Python反爬蟲偽裝瀏覽器進行爬蟲

Accept:瀏覽器端可以接受的媒體型別

Accept-Encoding:瀏覽器申明自己接收的編碼方法

Accept-Language:瀏覽器申明自己接收的語言

Connection:keep-alive 客戶端和伺服器之間還在連線中,如果關閉就是close

Host:請求報頭域主要用於指定被請求資源的Internet主機和埠號

User-Agent:使用的作業系統和瀏覽器的名稱和版本

Cookie:是用來儲存一些使用者資訊以便讓伺服器辨別使用者身份的

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。