5

我在访问 Project Gutenberg 库时遇到问题...我使用的是 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'
>>> 
4

2 回答 2

5

可以在此处找到 HTTP 403 响应的原因。基本上,该网站“仅供人类(非自动化)用户使用。任何使用自动化工具访问我们网站的行为都将导致您的 IP 地址或子网被临时或永久封锁。”

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

于 2012-11-05T03:18:39.030 回答
1
from urllib import urlopen

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

raw = urlopen(url).read()
于 2017-08-30T23:56:46.913 回答