我希望使用urllib2的http://fiverr.com/logo_business/design-a-killer-high-quality-effective-and-custom-made-logo-for-your-company-business-website-or-personal-use HTML。 但它没有给我通过我的浏览器获得的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”文字。 演出一旦取消暂停,我想联系卖家。 :)
答案 0 :(得分:1)
该网站正在发送数据gzip。 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
答案 1 :(得分:0)
此问题与浏览器有关(看似 Chrome '而urllib2
没有错误)
这只是答案的一小部分,但我希望它对某人有帮助。
我发现了同样的问题。我尝试使用br
和requests
,但无济于事:他们都得到与urllib2
相同的结果,我认为这是错误的,因为它与我看到的不匹配Chrome(Mac OSX 10.10 - Yosemite)。
但是,使用Firefox和Safari进一步测试成功检索到与urllib2
相同的网址,我已经确认这是正确的。
所以,正如Martijn Pieters所说,问题似乎与urllib2无关,但 与Chrome 有很大关系,至少在我的情况下如此
我的建议是,如果你有办法告诉你这是你的情况,那就是在Firefox / Safari上找到你想要的链接,然后实现你的代码以匹配Python上的链接。
或者,您必须使用标题,直到找到确切的结果。同样,在我的情况下,Chrome链接完全错误,因此我反对使用标题来匹配Chrome显示的内容。