Python httplib和urllib2在请求web时出现不同的错误

Python httplib和urllib2在请求web时出现不同的错误,python,http,urllib2,httplib,Python,Http,Urllib2,Httplib,我正在尝试使用httplib(或urllib2,对我来说,两者都很好)实现一个新的目标 我只想访问它来解析HTML并查找一些东西。然而,无论我如何尝试实现它,所有这些都以服务器的错误而告终 例如: import httplib conn = httplib.HTTPSConnection("mangapanda.onl") conn.request("GET", "/") response = conn.getresponse() print response.status, response.

我正在尝试使用httplib(或urllib2,对我来说,两者都很好)实现一个新的目标

我只想访问它来解析HTML并查找一些东西。然而,无论我如何尝试实现它,所有这些都以服务器的错误而告终

例如:

import httplib
conn = httplib.HTTPSConnection("mangapanda.onl")
conn.request("GET", "/")
response = conn.getresponse()
print response.status, response.reason
以:

500内部服务器错误

以及:

在open函数中引发异常,异常为:

urllib2.HTTPError:HTTP错误403:禁止

我在每个库中尝试了几个URL,从URL中删除了结尾“/”等等,但我还没有实现

此外,我真正想了解的是为什么会发生这种情况。我考虑的唯一原因是web应该对库可能无法遵循的请求使用某种重定向,但在最后一段代码之后,我认为它应该遵循它


这是URL语法问题吗?我该怎么写呢?为什么?如何解决此问题?

这可能是因为服务器不知道请求来自何处。而且
一些网站不允许他们认为是机器人行为的请求。为了解决这个问题,您可以为请求提供虚假信息。看看这本书。还有如何输入“假数据”或标题。

感谢您的解释。正如你所说,我已经用标题解决了这个问题。然而,我使用的是urllib2库,它有自己的使用方法,不需要另一个库。是否要使用urllib2信息更新您的答案,以便我可以接受它?;)不管怎样,我在投票,完成了!链接了正确的库以及一篇关于如何使用urllib2头修复它的堆栈溢出文章。
import urllib2
redirect_handler= urllib2.HTTPRedirectHandler()
opener = urllib2.build_opener(redirect_handler)
r = opener.open('https://www.mangapanda.onl/')
print r.status, r.reason