在使用python爬取网络爬虫时,经常会以为目标网站因为禁止爬取网络爬虫而出现403 Forbidden的错误
问:为什么会出现403 Forbidden的错误
答:出现urllib2.HTTPError: HTTP Error 403: Forbidden错误的原因主要是由于目标网站禁止爬虫导致的,可以在请求加上请求头信息.
问:那么应该如何解决呢?
答:只要模拟正常浏览器上网即可,比如添加一个headers
req = urllib.request.Request(url="http://en.wikipedia.org"+pageUrl)
html = urlopen(req)
在req中添加一个headers,使其变为
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0'}
req = urllib.request.Request(url="http://en.wikipedia.org"+pageUrl, headers=headers)
# req = urllib.request.Request(url="http://en.wikipedia.org"+pageUrl)
html = urlopen(req)
问:headers如何查找?
答:可以利用在浏览器开发者工具中的网络查找,比如火狐浏览器
问:伪装成浏览器还会不会出现其他问题?
答:会,比如目标网站会封掉查询次数过多ip地址