Python Urllib HTTP错误403

Python Urllib HTTP错误403,python,urllib,http-error,urlopen,Python,Urllib,Http Error,Urlopen,我在论坛中搜索,试图找出以下代码不起作用的原因: import nltk, re, pprint from urllib import request url = "http://www.gutenberg.org/files/2554/2554.txt" response = request.urlopen(url) raw = response.read().decode('utf8') print(raw[:75]) 但至今未能解决问题。以下是我尝试实施但没有成功的一些类似解决方案:

我在论坛中搜索,试图找出以下代码不起作用的原因:

import nltk, re, pprint
from urllib import request
url = "http://www.gutenberg.org/files/2554/2554.txt"
response = request.urlopen(url)
raw = response.read().decode('utf8')
print(raw[:75])
但至今未能解决问题。以下是我尝试实施但没有成功的一些类似解决方案:

我得到的错误是:

 File "C:\Python33\lib\urllib\request.py", line 163, in urlopen
return opener.open(url, data, timeout)
 File "C:\Python33\lib\urllib\request.py", line 472, in open
response = meth(req, response)
 File "C:\Python33\lib\urllib\request.py", line 582, in http_response
'http', request, response, code, msg, hdrs)
 File "C:\Python33\lib\urllib\request.py", line 510, in error
return self._call_chain(*args)
 File "C:\Python33\lib\urllib\request.py", line 444, in _call_chain
result = func(*args)
 File "C:\Python33\lib\urllib\request.py", line 590, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden
非常感谢您的帮助

此代码适用于:

Python 2

答复:

古腾堡项目犯罪与惩罚电子书,作者:费奥多·陀思妥耶夫斯基

Python 3

如果您收到HTTP代码403,则表示您被禁止访问此url。

此代码有效:

Python 2

答复:

古腾堡项目犯罪与惩罚电子书,作者:费奥多·陀思妥耶夫斯基

Python 3


如果您收到HTTP代码403,则表示您被禁止访问此url。

您考虑过使用
请求
吗?看起来类似于您考虑过使用
请求
吗?看起来类似于OP使用Python 3。更新您对Python3版本的urllib的回答,否则这可能会导致更多的混淆。OP似乎正在使用Python3。更新Python3版本的urllib的答案,否则可能会导致更多的混淆
from  urllib import urlopen

url = "http://www.gutenberg.org/files/2554/2554.txt"
response = urlopen(url)

if response.code == 200:
    raw = response.read().decode('utf-8')
    print raw[:75]
else:
    print 'Error', response.code

response.close()
from  urllib import request

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

try:
    response = request.urlopen(url)
    raw = response.read().decode('utf-8')
    print(raw[:75])
except Exception as ex:
    print('Error:', ex)