请求网络时,httplib和urllib2出现不同的错误

时间:2018-11-20 17:41:25

标签: python http urllib2 httplib

我正在尝试使用httplib(或urllib2,对我来说都很好)进入web

我只想访问它以解析HTML并寻找内容。但是,无论我如何尝试实现,都将导致服务器错误。

例如:

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

结尾为:

  

500内部服务器错误

并且:

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错误403:禁止

我已经尝试在每个库中使用多个URL,从URL中删除了结尾的“ /”,依此类推,但是我还无法实现。

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

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

1 个答案:

答案 0 :(得分:1)

这可能是由于服务器不知道请求来自何处。也, 一些网站不允许将其视为漫游器活动的请求。为了解决该问题,您可以为请求提供虚假信息。签出urllib2 request library。还有here's如何输入“伪数据”或标题。