首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用HttpLib“永久移动”HttpLib请求

使用HttpLib“永久移动”HttpLib请求
EN

Stack Overflow用户
提问于 2015-05-11 22:37:53
回答 1查看 1.5K关注 0票数 1

范围:

目前,我正在尝试为编写一个网络刮刀。我有一个使用相当强大的C#“网络爬行”背景,但是这个httplib让我很不爽。

问题:

当试图为上面指定的页面发出一个Http Get请求时,我会得到一个“永久移动”,它指向相同的URL。我可以使用requests库发出请求,但我希望使用httplib使其工作,这样我就可以理解自己做错了什么。

代码示例:

我对Python完全陌生,所以任何错误的language guideline或语法都是C#的错误。

代码语言:javascript
复制
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或任何其他花哨的库,因为我觉得我在这里错过了一些很小的东西。

EN

回答 1

Stack Overflow用户

发布于 2015-05-11 23:40:20

我体内咖啡因摄入过少或太多的问题。

为了获得https,我需要HTTPSConnection类。

而且,我想要的地址里没有“www”。所以,它不应该包含在主机中。

两个错误的地址都用301错误代码将我重定向到正确的地址。如果我使用的是请求或更完整的功能模块,它将自动遵循重定向。

我的验证:

代码语言:javascript
复制
c = httplib.HTTPSConnection('420101.com')
c.request("GET", "/strain-database")
r = c.getresponse()
print r.status, r.reason

200 OK
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30178776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档