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

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

urllib2.HTTPError: HTTP Error 403: Forbidden

似乎维基百科可能会阻止(简单)编程访问以促使人们使用他们的 API。

有关此问题的更多讨论,请参阅使用 Python 获取 Wikipedia 文章。

于 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 回答
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 回答