无法访问Project Gutenberg原始文本

时间:2012-11-05 03:15:40

标签: python python-2.7 urllib

访问Project Gutenberg Library时出现问题... 我使用的是Python 2.7.3。 我可以访问NLTK库并使用python,但在尝试访问原始文本时,它不允许我这样做。

我访问的文字是犯罪和惩罚,它的len(raw)应该等于1176831,而是给我一个len(raw)288。 这是我使用的代码:

>>> from __future__ import division
>>> import nltk, re, pprint
>>> from urllib import urlopen
>>> url = "http://www.gutenberg.org/files/2554/2554.txt"
>>> raw = urlopen(url).read()
>>> type(raw)
<type 'str'>
>>> len(raw)
288
>>> raw
'<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">\n<html><head>\n<title>403 Forbidden</title>\n</head><body>\n<h1>Forbidden</h1>\n<p>You don\'t have permission to access /files/2554/2554.txt\non this server.</p>\n<hr>\n<address>Apache Server at www.gutenberg.org Port 80</address>\n</body></html>\n'
>>> 

2 个答案:

答案 0 :(得分:4)

可以找到HTTP 403响应的原因here。基本上该网站仅供“人类(非自动)用户使用。任何使用自动化工具访问我们网站的行为都会导致您的IP地址或子网暂时或永久阻塞。”

您的代码“应该有效”,但网站确定您是通过代码访问网站而不是浏览器。这就是我要说的。 :)

答案 1 :(得分:-1)

from urllib import urlopen

url = "http://www.gutenberg.org/files/2554/2554**-0**.txt"

raw = urlopen(url).read()