本文的文字及图片来源于网络,仅供学习、交流使用,不具备任何商业用途,版权归原做者全部,若有问题请及时联系咱们以做处理。面试
加企鹅群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)