Python反爬蟲偽裝瀏覽器進(jìn)行爬蟲
對于爬蟲中部分網(wǎng)站設(shè)置了請求次數(shù)過多后會封殺ip,現(xiàn)在模擬瀏覽器進(jìn)行爬蟲,也就是說讓服務(wù)器認(rèn)識到訪問他的是真正的瀏覽器而不是機器操作
簡單的直接添加請求頭,將瀏覽器的信息在請求數(shù)據(jù)時傳入:
打開瀏覽器--打開開發(fā)者模式--請求任意網(wǎng)站
如下圖:找到請求的的名字,打開后查看headers欄,找到User-Agent,復(fù)制。然后添加到請求頭中
代碼如下:
import requestsurl = ’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)
更深的偽裝瀏覽器,添加多個瀏覽器信息,每次請求的時候隨機發(fā)送瀏覽器信息,讓服務(wù)器了解不是一個瀏覽器一直在訪問,(可以百度查找user-agent)
代碼如下:
import requestsimport randomurl = ’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)
完整的請求體解釋:
以下是筆者訪問百度的請求體。
Accept:瀏覽器端可以接受的媒體類型
Accept-Encoding:瀏覽器申明自己接收的編碼方法
Accept-Language:瀏覽器申明自己接收的語言
Connection:keep-alive 客戶端和服務(wù)器之間還在連接中,如果關(guān)閉就是close
Host:請求報頭域主要用于指定被請求資源的Internet主機和端口號
User-Agent:使用的操作系統(tǒng)和瀏覽器的名稱和版本
Cookie:是用來存儲一些用戶信息以便讓服務(wù)器辨別用戶身份的
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 在Android中使用WebSocket實現(xiàn)消息通信的方法詳解2. 淺談python出錯時traceback的解讀3. ASP 信息提示函數(shù)并作返回或者轉(zhuǎn)向4. Python importlib動態(tài)導(dǎo)入模塊實現(xiàn)代碼5. windows服務(wù)器使用IIS時thinkphp搜索中文無效問題6. 利用promise及參數(shù)解構(gòu)封裝ajax請求的方法7. python matplotlib:plt.scatter() 大小和顏色參數(shù)詳解8. .NET中l(wèi)ambda表達(dá)式合并問題及解決方法9. JSP數(shù)據(jù)交互實現(xiàn)過程解析10. Nginx+php配置文件及原理解析
