python: urllib2.HTTPError: HTTP 错误 405: 方法不允许

Posted

技术标签:

【中文标题】python: urllib2.HTTPError: HTTP 错误 405: 方法不允许【英文标题】:python: urllib2.HTTPError: HTTP Error 405: Method Not Allowed 【发布时间】:2016-08-24 23:12:48 【问题描述】:

我真的是一个正在尝试学习Python的ETL人,请帮助

import urllib2
urls =urllib2.urlopen("url1","url2")
i=0
while i< len(urls):
  htmlfile = urllib2.urlopen(urls[i])
  htmltext = htmlfile.read()
  print htmltext
  i+=1

我收到错误

Traceback(最近一次调用最后一次): 文件“.\test.py”,第 2 行,在 urls =urllib2.urlopen("url1","url2") 文件“c:\python27\Lib\urllib2.py”,第 154 行,在 urlopen 返回 opener.open(url, 数据, 超时) 文件“c:\python27\Lib\urllib2.py”,第 437 行,打开 响应=方法(请求,响应) http_response 中的文件“c:\python27\Lib\urllib2.py”,第 550 行 'http', 请求, 响应, 代码, msg, hdrs) 文件“c:\python27\Lib\urllib2.py”,第 475 行,错误 返回 self._call_chain(*args) _call_chain 中的文件“c:\python27\Lib\urllib2.py”,第 409 行 结果 = 函数(*args) http_error_default 中的文件“c:\python27\Lib\urllib2.py”,第 558 行 引发 HTTPError(req.get_full_url(), 代码, msg, hdrs, fp) urllib2.HTTPError: HTTP 错误 405: 方法不允许

【问题讨论】:

你得到的错误不是很明显吗? 嗨ozgur,我对python的基础知识知之甚少..可以简单介绍一下.. urllib2.HTTPError: HTTP Error 403: Forbidden的可能重复 【参考方案1】:

您的错误来自第 2 行:

urls =urllib2.urlopen("url1","url2")

您尝试访问的任何 url 都会返回一个 http 错误代码

HTTP Error 405: Method Not Allowed

查看 urllib2 文档,您应该只使用 1 个 url 作为参数

https://docs.python.org/2/library/urllib2.html

打开 URL url,可以是字符串也可以是 Request 对象。

data 可以是一个字符串,指定要发送到服务器的附加数据,或者如果不需要此类数据,则为 None。目前 HTTP 请求是唯一使用数据的请求;提供数据参数时,HTTP 请求将是 POST 而不是 GET。

您输入的第二个参数可能是将请求转换为 POST,这将解释 Method Not Allowed 代码。

【讨论】:

以上是关于python: urllib2.HTTPError: HTTP 错误 405: 方法不允许的主要内容,如果未能解决你的问题,请参考以下文章

urllib2.HTTPError: HTTP Error 403: Forbidden 请高手指点,python菜鸟一枚

urllib2.HTTPError:HTTP 错误 403:禁止

urllib2.HTTPError:HTTP 错误 401:未经授权

python urllib2导出elasticsearch数据时 返回 "urllib2.HTTPError: HTTP Error 500: Internal Server Error&q

覆盖 urllib2.HTTPError 或 urllib.error.HTTPError 并读取响应 HTML

如何避免程序终止urllib2.httperror 404错误并显示相应的消息