1

Pythonからウィキペディアのページにアクセスしてみました

a = urllib2.urlopen("http://en.wikipedia.org/wiki/LALR_parser")

これによりエラーが発生しました

<urlopen error [Errno 101] Network is unreachable>

だから私は試しました

req = urllib2.Request(url, headers={'User-Agent' : "MyBrowser"})
a = urllib2.urlopen(req)

それでも同じエラーが発生します

現在、chrome または firefox でウィキペディアを表示できません。「chrome でページが見つかりません」と表示されます。

しかし、匿名プロキシでウィキペディアの URL を入力すると、問題なくページが表示されます

何が問題だと思いますか?私の IP はブロックされていますか? ファイアウォールを確認しました(ubuntu lucidで)

sudo ufw status

Status: inactive

私も試しました

sudo iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

誰か助けてくれませんか?

4

3 に答える 3

1

ヘッダーが正しくないため、これを使用して試してください:

import  urllib2
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1'}
req = urllib2.Request("http://en.wikipedia.org/wiki/LALR_parser", headers=headers)
a = urllib2.urlopen(req)
print a.read()

幸運を祈ります!

于 2012-11-16T04:06:54.253 に答える
1

ウィキペディアがそれをブロックしている可能性はありますか? 提供されたコードを実行すると、例外が発生します。

urllib2.HTTPError: HTTP Error 403: Forbidden

ウィキペディアが (単純な) プログラムによるアクセスをブロックして、人々に API を使用するよう促している可能性があるようです。

この問題の詳細については、Python でウィキペディアの記事をフェッチするを参照してください。

于 2012-11-16T03:32:22.470 に答える
1

プロキシを使用していますか?プロキシを使用している場合は、コードに次の行を追加してみてください。

import urllib2
proxy = urllib2.ProxyHandler({'http': 'user:password@your_proxy_server:proxy_port'})
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)
urllib2.urlopen('http://www.python.org/')
于 2012-11-16T03:32:59.500 に答える