网络不能从python脚本

时间:2012-11-16 02:57:13

标签: python url ip urllib2

我尝试从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中查看维基百科 ..它说&#39; chrome无法找到该网页&#39;

但是如果我在匿名代理中输入维基百科网址,页面会显示没有任何问题

您认为问题是什么?我的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
有人可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

维基百科是否有可能阻止它? 运行提供的代码会引发异常:

urllib2.HTTPError: HTTP Error 403: Forbidden

维基百科似乎可能阻止(简单)程序化访问以推动人们使用他们的API。

有关此问题的更多讨论,请参阅Fetch a Wikipedia article with Python

答案 1 :(得分: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/')

答案 2 :(得分: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()
希望你好运!