范围:
目前,我正在尝试为编写一个网络刮刀。我有一个使用相当强大的C#“网络爬行”背景,但是这个httplib让我很不爽。
问题:
当试图为上面指定的页面发出一个Http Get请求时,我会得到一个“永久移动”,它指向相同的URL。我可以使用requests库发出请求,但我希望使用httplib使其工作,这样我就可以理解自己做错了什么。
代码示例:
我对Python完全陌生,所以任何错误的language guideline或语法都是C#的错误。
import httplib
# Wrapper for a "HTTP GET" Request
class HttpClient(object):
def HttpGet(self, url, host):
connection = httplib.HTTPConnection(host)
connection.request('GET', url)
return connection.getresponse().read()
# Using "HttpClient" class
httpclient = httpClient()
# This is the full URL I need to make a get request for : https://420101.com/strain-database
httpResponseText = httpclient.HttpGet('www.420101.com','/strain-database')
print httpResponseText我真的想让它使用httplib库来工作,而不是使用requests或任何其他花哨的库,因为我觉得我在这里错过了一些很小的东西。
发布于 2015-05-11 23:40:20
我体内咖啡因摄入过少或太多的问题。
为了获得https,我需要HTTPSConnection类。
而且,我想要的地址里没有“www”。所以,它不应该包含在主机中。
两个错误的地址都用301错误代码将我重定向到正确的地址。如果我使用的是请求或更完整的功能模块,它将自动遵循重定向。
我的验证:
c = httplib.HTTPSConnection('420101.com')
c.request("GET", "/strain-database")
r = c.getresponse()
print r.status, r.reason
200 OKhttps://stackoverflow.com/questions/30178776
复制相似问题