2

Pythonのurllib2(またはurllib)を使用しているサイトからは読み取れないことがわかりました。例...

urllib2.urlopen("http://www.dafont.com/").read()
# Returns ''

これらのサイトは、ブラウザでサイトにアクセスすると機能します。PHPを使用してそれらをスクレイプすることもできます(他の言語は試していません)。同じ問題を抱えている他のサイトを見たことがありますが、現時点ではURLを思い出せません。

私の質問は...

  1. この問題の原因は何ですか?
  2. 回避策はありますか?
4

3 に答える 3

6

User-Agent によってブロックされると思います。次のサンプル コードを使用して、User-Agent を変更できます。

USERAGENT = 'something'
HEADERS = {'User-Agent': USERAGENT}

req = urllib2.Request(URL_HERE, headers=HEADERS)
f = urllib2.urlopen(req)
s = f.read()
f.close()
于 2010-04-03T18:55:57.617 に答える
3

別のユーザー エージェントを設定してみてください。このリンクの回答を確認してください。

于 2010-04-03T18:56:09.663 に答える
0

私は質問を投稿した人です。私にはいくつかの疑いがありますが、それらについてはよくわかりません。そのため、ここに質問を投稿しました。

この問題の原因は何ですか?

ホストがrobot.txtまたはhtaccessを使用してurllibライブラリをブロックしていることが原因だと思います。しかし、それについてはよくわかりません。それが可能かどうかさえわかりません。

この問題の回避策はありますか?

Unixを使用している場合、これは機能します...

contents = commands.getoutput("curl -s '"+url+"'")
于 2010-04-03T18:48:46.897 に答える