我正在使用urllib2和mechanize抓取一些网站,但其中一些会给我错误
当我使用 urlllib2 进行抓取时,它会给我 HTTPError:HTTPError()
urllib2的代码
import urllib2
response=urllib2.urlopen('http://proxygaz.com/country/india-proxy/').read()
错误
HTTPError:HTTPError()
当我使用 mechanize 进行抓取时,它会给我 httperror_seek_wrapper:>>
机械化
的代码import mechanize
from mechanize import Browser
br = Browser()
br.open('http://proxygaz.com/country/india-proxy/').read()
错误
httperror_seek_wrapper:>>
答案 0 :(得分:3)
从urllib2.urlopen()
示例中,例外是:
urllib2.HTTPError: HTTP Error 403: Forbidden
由于某种原因,您无权访问资源....它是用户代理。它适用于requests
,您也可以按如下方式更改用户代理:
import urllib2
request = urllib2.Request('http://proxygaz.com/country/india-proxy/', headers={'User-Agent': 'Mozilla/5.0'})
response = urllib2.urlopen(request)
答案 1 :(得分:1)
出现同样的错误,请尝试使用用户代理或requests
:
import requests
response=requests.get('http://proxygaz.com/country/india-proxy/')
print(response.status_code)
200
使用代理 - 工作正常:
import urllib2
resp = urllib2.Request('http://proxygaz.com/country/india-proxy/')
resp.add_header('User-Agent', 'FIREFOX')
opener = urllib2.build_opener()
print opener.open(resp).read()