是否可以使用Python请求库阅读Wikipedia?

时间:2015-12-04 16:06:26

标签: python web-scraping python-requests wikipedia

要从给定的URL读取内容,请执行以下操作:

import requests
proxies = {'http':'http://user:pswd@foo-webproxy.foo.com:7777'}
url = 'http://example.com/foo/bar'
r = requests.get(url, proxies = proxies)
print r.text.encode('utf-8')

它工作正常!我得到了内容。

但是,如果我使用其他网址:

url = 'https://en.wikipedia.org/wiki/Mestisko'

它不起作用。我收到一条以:

开头的错误消息
requests.exceptions.ConnectionError: ('Connection aborted.', error(10060

维基百科会阻止自动请求吗?

ADDED

我尝试按以下方式设置用户代理:

headers = {'User-Agent':'Mozilla/5.0'}
r = requests.get(url, proxies = proxies, headers = headers)

不幸的是它无济于事。我仍然得到同样的错误。

已添加2

现在我很困惑。如果我尝试通过设置代理从http://example.com/foo/bar获取内容,我会得到它。如果我没有设置代理,我会获得代理生成的内容。这个行为我能理解。现在,如果我尝试从维基百科获取内容,我会单独获得相同的错误消息,无论我是设置还是不设置代理。所以,我不明白这个错误消息来自维基百科或代理(两个选项都不是真的)。​​

1 个答案:

答案 0 :(得分:0)

通过替换:

解决了问题
proxies = {'http':'http://user:pswd@foo-webproxy.foo.com:7777'}

使用以下行:

proxies = {'http':'http://user:pswd@foo-webproxy.foo.com:7777', 'https':'http://user:pswd@foo-webproxy.foo.com:7777'}