在写网页爬虫的时候,有的网站会有反爬取措施,所以有可能出现上面所示bug
出现bug的地方可能有两处:
1. requests请求时
requests.get(url),返回结果是403。
解决方法:
headers= {
'User-Ageent':'一些字符',
'Cookie':'一些字符'
}
requests.get(url, headers=headers),
此时返回结果应该就是200,正常。加入headers的目的是,模拟人的行为,让服务器认为是人在操作,
User-Agent, Cookie可以查看网页requests,即可查明,不同网页,Cookie不同
2. urlretrieve下载东西时
解决方法:
import urllib.request
opener=urllib.request.build_opener()
opener.addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1941.0 Safari/537.36')]
urllib.request.install_opener(opener)
url=''
local=''
urllib.request.urlretrieve(url,local)
原理还不是很清楚,在stackoverflow上找到的,结果正确。