python爬蟲常見反爬措施

2021-09-24 14:08:46 字數 1549 閱讀 9877

1.ip封鎖

常見**反爬蟲首先考慮到會不會對使用者產生誤傷,舉個例子,在校園網內,有台機器對**持續高頻繁產生請求,校園網涉及使用者過多,但是如果封鎖ip那麼會對校園中的使用者產生誤傷,喪失了許多使用者量,就拿某寶那麼大的公司來說,不到萬不得已時,不會對ip進行長時間或者進行封鎖。

解決方案:

1.採用修改程式訪問頻率

可以使用

#引入impor time#休息兩秒time.sleep(2)

2.採用ip**的方式,進行對**資料量的爬取

#匯入requests庫,如果使用其他的自行匯入import requests

這樣爬取**就無法判斷你是否批量爬取了,當然不是乙個ip用一次,要用到失效後再進行更換(土豪隨意 23333)

2協議頭

舉個栗子

rs= requests.get('')print(rs.text)

rs=requests.get('')

返回狀態為 response404

那麼如何解決呢

解決方案:

rs=requests.get('')

返回狀態為response200

這時我們可以愉快地訪問了。

3.驗證碼

當使用者請求頻率過高的時候,有些**就會觸發驗證碼驗證機制,讓你輸入各種驗證碼 常用的舉個栗子,12306購票時,客戶多次請求**的查詢票的請求,在購買車票的的時候,會顯現出驗證碼,那麼12306判斷你是否是機械人,

解決方案:

4.需要登入才能獲得資訊

例如知乎,facebook ...等**需要使用者登入之後才能夠獲取頁面中的資訊,那麼這種防護能非常有效的防止資料大批量的被爬取。

解決方案:

1.小資料量(模擬登入後再去爬取,或者使用cookies 直接進行爬取)

2.申請諸多的賬號去養這些號,然後登入,或者獲得cookies進行爬取。

5.js類的反爬

例如爬蟲在爬取**的時候,會獲取主頁中的有效資訊,但是對於他不需要的,爬蟲不進行訪問,而在真實使用者用瀏覽器訪問的時候會訪問到主頁上的js和資源,那麼伺服器端,就會判斷該使用者下是否訪問了這些資源來判斷是否爬蟲。

解決方案:

使用selenium

介紹:selenium [1] 是乙個用於web應用程式測試的工具。selenium測試直接執行在瀏覽器中,就像真正的使用者在操作一樣。支援的瀏覽器包括ie(7, 8, 9, 10, 11),mozilla firefox,safari,google chrome,opera等。

使用這個庫即可以達到使用者真實訪問的目的

from selenium import webdriver

from selenium.webdriver.common.keys import keys

import time

driver = webdriver.chrome()

這樣的話

就會瀏覽器子自動操作,列印原始碼的命令之類的我會出乙個selenium專題來介紹敬請期待。

python爬蟲反爬 爬蟲怎麼測試反爬?

有沒有反爬,如果你沒有用爬蟲抓取過,你是不可能知道的。就算要測試,你還要嘗試不同的delay。如果設定的 delay 在 的反爬頻率外,那就測不出來。如果在頻率內,那就被封。或者封ip,或者封賬號。如果一定要測出來,就簡單粗暴的方法,你不要設定delay,就不間斷的抓,最後出現兩種情況,1 有反爬,...

API 反爬措施

對於資訊發布平台,最重要的資產就是資訊,如果資訊資料被爬蟲搞完了那將損失慘重,所以介面要做好反爬措施。user agent bytespider 簡易過濾,表明態度。限制ip訪問頻率 這種方式ip不能永久封禁,只能封禁一段時間。可通過購買動態ip服務或者 ip池來破解。透明 無效,普匿 無效,高匿 ...

python爬京東 反爬 爬蟲怎麼測試反爬?

有沒有反爬,如果你沒有用爬蟲抓取過,你是不可能知道的。就算要測試,你還要嘗試不同的delay。如果設定的 delay 在 的反爬頻率外,那就測不出來。如果在頻率內,那就被封。或者封ip,或者封賬號。如果一定要測出來,就簡單粗暴的方法,你不要設定delay,就不間斷的抓,最後出現兩種情況,1 有反爬,...