我正在尝试使用urllib2打开多个页面。问题是有些页面无法打开。它返回urllib2.HTTPerror: HTTP Error 400: Bad Request
我从另一个网页(在页面的头部是charset=“utf-8”)获取这个页面的hrefs。 只有在尝试打开url中包含“č”、“ž”或“ř”的页面时,才会返回错误。你知道吗
代码如下:
def getSoup(url):
req = urllib2.Request(url)
response = urllib2.urlopen(req)
page = response.read()
soup = BeautifulSoup(page, 'html.parser')
return soup
hovienko = getSoup("http://www.hovno.cz/hovna-az/a/1/")
lis = hovienko.find("div", class_="span12").find('ul').findAll('li')
for liTag in lis:
aTag = liTag.find('a')['href']
href = "http://www.hovno.cz"+aTag """ hrefs, I'm trying to open using urllib2 """
soup = getSoup(href.encode("iso-8859-2")) """ here occures errors when 'č','ž' or 'ř' in url """
有人知道我该怎么做才能避免错误吗?你知道吗
谢谢
解决办法很简单。我应该使用urllib2.quote()。你知道吗
编辑代码:
这个站点是UTF-8。为什么你需要href.encode编码(“iso-8859-2”)?我从http://programming-review.com/beautifulsoasome-interesting-python-functions/获取了下一个代码
这里有几件事。你知道吗
首先,uri不能包含非ASCII。你必须更换它们。看这个: How to fetch a non-ascii url with Python urlopen?
其次,为自己省去一个痛苦的世界,使用requests来处理HTTP内容。你知道吗
相关问题 更多 >
编程相关推荐