2

このコードは正常に動作し、html を読み取っていました。その後、サイトは read() に関するデータの提供を停止しました。エラーコードなし。

Webサーバーが何か異常を検出したからですよね?(ユーザー エージェントを設定する前に、エラー 403: Bad Behavior が発生しました)

urllib2 には、フラグを立てる顕著な署名がありますか? 別のライブラリに切り替えると役に立ちますか?

疑わしいことはしていません。このライブラリを使用してページを読み取る場合と、lynx ブラウザーを使用する場合の動作の違いはわかりません。

import urllib2
opener = urllib2.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
search_url='http://www.google.com/?search=stackoverflow"'
raw = opener.open(search_url)
print raw.headers
print raw.read()
4

2 に答える 2

2

印刷ステートメントを考えると、Python2.xでこれを実行していると思います。システムで同じことを実行し、ユーザーエージェントの設定に関係なく機能します。デビッド・ロビンソンが提案したことは、ここで何かすることがあるかもしれません。

別の注意点として、私は個人的に次の例のスニペットを使用しました

import urllib2

req = urllib2.Request('http://www.voidspace.org.uk')
response = urllib2.urlopen(req)
the_page = response.read()

複数回、複数のユースケースで、エラーが発生したことはありません。

于 2012-05-07T16:32:22.207 に答える
0

検索エンジンのクロールにプレーンな urllib2 の代わりに mechanize を使用してみてください。ブラウザの動作をよりよく模倣します。

于 2012-05-08T11:37:51.067 に答える