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

httplib and urllib2 different errors when requesting a web

我正在尝试使用 httplib(或 urllib2,对我来说两者都很好)访问 web

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

例如:

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

结束于:

500 Internal Server Error

并且:

import urllib2
redirect_handler= urllib2.HTTPRedirectHandler()
opener = urllib2.build_opener(redirect_handler)
r = opener.open('https://www.mangapanda.onl/')
print r.status, r.reason

在 open 函数中引发异常:

urllib2.HTTPError: HTTP Error 403: Forbidden

我已经尝试在每个库中使用几个 URL,从 URL 中删除结尾的“/”等等,但我还没有能够实现。

此外,我真正想要的是了解为什么会发生这种情况。我考虑的唯一原因是网络应该使用某种重定向来处理图书馆可能无法遵循的请求,但是在最后一个片段之后我认为它应该遵循它。

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

这可能是因为服务器不知道请求来自哪里。还, 一些网站不允许他们认为是机器人的请求 activity。为了解决该问题,您可以为请求提供虚假信息。查看urllib2 request library. Also here's如何输入"fake data",或headers。