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

その Web サイトはデータを 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
于 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 に答える