我尝试从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
有人可以帮忙吗?
答案 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()
希望你好运!