爬蟲防封IP


當抓取數據逐漸增大時,服務器的負荷會加大,會直接封掉來訪IP:

采取措施:

  1.創建請求頭部信息:

  

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.9 Safari/537.36'} #創建請求頭
strhtml = requests.get(url,headers = headers);    #使用GET方式,獲取網頁數據

  2.我們就只修改User-Agent還不夠,爬蟲1秒鍾可以抓取很多圖片,通過統計IP的訪問頻率,頻率超過閾值,會返回一個驗證碼,如果是用戶訪問,用戶就會填寫繼續訪問,而代碼訪問就會被封IP,有兩種解決方法:

  (1)增設延時 (耗時)

import time
time.sleep(3)#每3秒抓取1次

  (2)構建自己代理IP池

proxies = {
    "http": "http://10.10.1.10:3128",
    "https": "http://10.10.1.10:1080",
}
url="http://www.cntour.cn/"  #需要爬取的網址
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.9 Safari/537.36'} #創建請求頭
strhtml = requests.get(url,headers = headers,proxies=proxies); 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM