使用urllib2和mechanize进行爬行会给我带来错误

时间:2015-01-21 10:51:43

标签: python urllib2 mechanize

我正在使用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:>>

2 个答案:

答案 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()
相关问题