您好,登錄后才能下訂單哦!
本篇內容介紹了“python爬蟲偽裝技巧有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
因為網站服務器能夠很輕易的識別出訪問的來源瀏覽器,以requests請求為例,默認header頭數據中沒有瀏覽器信息,在與瀏覽器交互時簡直就是“裸奔”,所以我們可以加入“User-Agent”信息偽裝成真實瀏覽器,代碼如下:
import requests headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0'} #模擬成火狐瀏覽器 response = requests.get("http://www.baidu.com",headers=headers) #模擬請求url
訪問地址指的是headers頭部中的reffer信息,那么它有什么作用呢?舉個例子解釋一下:
我在https://bj.meituan.com/里有一個https://waimai.meituan.com/鏈接,那么點擊這個https://waimai.meituan.com/,它的header信息里就有:Referer=https://bj.meituan.com/
那么可以利用這個來防止盜鏈,比如我只允許我自己的網站訪問我自己的圖片服務器
我們可以加入“reffer”信息偽裝訪問地址,代碼如下:
import requests headers={ 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0', 'reffer':'https://bj.meituan.com/'} response = requests.get("https://waimai.meituan.com/",headers=headers) #模擬請求url
對于網絡中的反爬蟲策略來說,大多數都是根據單個IP的行為來判斷是不是網絡爬蟲的,例如,反爬蟲檢測到某個IP的訪問次數很多,或者是訪問的頻率很快,就會封禁這個IP。這時我們就要選擇代理IP來突破反爬蟲的機制,更穩定的及逆行數據的爬取。python添加代理IP的代碼如下:
import requests proxies={'https':'101.236.54.97:8866'} headers={ 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0', 'reffer':'https://bj.meituan.com/'} response = requests.get("https://waimai.meituan.com/",headers=headers,proxies=proxies) #模擬請求url
代理IP可以自己去網上找免費的,但不太穩定,也可去花錢買一些比較穩定的。
真實用戶的訪問次數以及訪問規律是很穩定的,并不會多次的訪問,所以我們要偽裝成真實的用戶來爬取數據,這樣反爬蟲機制就不會察覺,可以采用控制訪問頻率的方式,主要是隨機設置訪問時間,代碼如下:
import requests import time,random proxies={'https':'101.236.54.97:8866'} headers={ 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0', 'reffer':'https://bj.meituan.com/'} for i in range(10): response = requests.get("https://waimai.meituan.com/",headers=headers,proxies=proxies) #模擬請求url time.sleep(random.uniform(1.1,5.4))
有些網頁是需要登錄后才會顯示數據,而cookie值會攜帶個人的登錄信息,在爬蟲中加入cookie值就能避免登錄的麻煩,例如知乎、京東等網站,加入方法如下:
import requests proxies={'https':'101.236.54.97:8866'} headers={ 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0', 'reffer':'https://bj.meituan.com/'} cookies='' response = requests.get("https://waimai.meituan.com/",headers=headers,proxies=proxies,,cookies=cookies) #模擬請求url
“python爬蟲偽裝技巧有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。