0

我想要http://fiverr.com/logo_business/design-a-killer-high-quality-effective-and-custom-made-logo-for-your-company-business-website-or-personal-use的 HTML使用 urllib2。但它并没有给我通过浏览器获得的 HTML ......

我的代码:

import urllib2
request = urllib2.Request('http://fiverr.com/logo_business/design-a-killer-high-quality-effective-and-custom-made-logo-for-your-company-business-website-or-personal-use')
opener = urllib2.build_opener()
request.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20130406 Firefox/23.0')
data = opener.open(request).read()
print data

谁能帮我吗?我究竟做错了什么?

我需要的具体内容是“Gig Paused”文本。我想在演出未暂停后立即联系卖家。:)

4

2 回答 2

2

该网站正在发送压缩数据。urllib2无法开箱即用地对其进行解码,但您可以通过以下方式访问它requests

url = 'http://fiverr.com/logo_business/design-a-killer-high-quality-effective-and-custom-made-logo-for-your-company-business-website-or-personal-use'
print 'Gig Paused' in requests.get(url, headers={'User-Agent': ''}).text
于 2013-05-20T22:55:25.460 回答
0

这个问题与浏览器有关(似乎是Chrome '而不是urllib2有错)

这只是答案的一小部分,但我希望它对某人有所帮助。

我发现了同样的问题。我尝试使用brand requests,但无济于事:它们都得到了与 相同的结果urllib2,我认为这是错误的,因为它与我在 Chrome (Mac OSX 10.10 - Yosemite) 上看到的不匹配。

但是,使用 Firefox 和 Safari 进行的进一步测试成功地检索到与 相同的 url urllib2,并且我已经确认这是正确的。

因此,正如 Martijn Pieters 所说,问题似乎与 urllib2 无关,但与 Chrome 有很大关系,至少在我的情况下。

我的建议是,如果您有办法知道这就是您的情况,那就是在 Firefox/Safari 上找到您想要的链接,然后在 Python 上实现您的代码以匹配该链接。

或者,您将不得不使用标题,直到您找到到底发生了什么。同样,在我的情况下,Chrome 链接完全是错误的,所以我反对使用标题来匹配 Chrome 显示的内容。

于 2014-12-10T16:29:36.137 回答