urllib2.HTTPError: HTTP Error 403: Forbidden的解决方案

在使用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地址

posted @ 2017-04-22 13:43  FontTian  阅读(1353)  评论(0编辑  收藏  举报