本文的文字及圖片來源於網絡,僅供學習、交流使用,不具備任何商業用途,版權歸原做者全部,若有問題請及時聯繫咱們以做處理。面試
加企鵝羣695185429便可免費獲取,資料全在羣文件裏。資料能夠領取包括不限於Python實戰演練、PDF電子文檔、面試集錦、學習資料等瀏覽器
適用狀況:限制IP地址狀況,也可解決因爲「頻繁點擊」而須要輸入驗證碼登錄的狀況。網絡
這種狀況最好的辦法就是維護一個代理IP池,網上有不少免費的代理IP,參差不齊,能夠經過篩選找到能用的。對於「頻繁點擊」的狀況,咱們還能夠經過限制爬蟲訪問網站的頻率來避免被網站禁掉。函數
proxies = {'http':'http://XX.XX.XX.XX:XXXX'} Requests: import requests response = requests.get(url=url, proxies=proxies) Urllib2: import urllib2 proxy_support = urllib2.ProxyHandler(proxies) opener = urllib2.build_opener(proxy_support, urllib2.HTTPHandler) urllib2.install_opener(opener) # 安裝opener,此後調用urlopen()時都會使用安裝過的opener對象 response = urllib2.urlopen(url)
適用狀況:限制頻率狀況。學習
Requests,Urllib2均可以使用time庫的sleep()函數:網站
import time time.sleep(1)
有些網站會檢查你是否是真的瀏覽器訪問,仍是機器自動訪問的。這種狀況,加上User-Agent,代表你是瀏覽器訪問便可。有時還會檢查是否帶Referer信息還會檢查你的Referer是否合法,通常再加上Referer。ui
headers = {'User-Agent':'XXXXX'} # 假裝成瀏覽器訪問,適用於拒絕爬蟲的網站 headers = {'Referer':'XXXXX'} headers = {'User-Agent':'XXXXX', 'Referer':'XXXXX'} Requests: response = requests.get(url=url, headers=headers) Urllib2: import urllib, urllib2 req = urllib2.Request(url=url, headers=headers) response = urllib2.urlopen(req)