gpt4 book ai didi

python - 使用 HttpLib 的 HTTP 获取请求 "Moved Permanently"

转载 作者:可可西里 更新时间:2023-11-01 17:36:27 26 4
gpt4 key购买 nike

范围:

我目前正在尝试为 this specific page 编写一个 Web scraper .我有一个 pretty strong使用 C# 的“网络爬虫”背景,但这个 httplib 打败了我。

问题:

当尝试对上面指定的页面发出 Http Get 请求时,我得到一个“永久移动”,它指向完全相同的 URL。我可以使用 requests 库发出请求,但我想使用 httplib 让它工作,这样我就可以理解我做错了什么。

代码示例:

我是 Python 的新手,所以任何错误的语言指南或语法都是 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 或任何其他花哨的库来让它工作,因为我觉得我在这里遗漏了一些非常小的东西。

最佳答案

问题是我体内的咖啡因太少或太多。

要获得 https,我需要 HTTPSConnection 类。

此外,我想获取的地址中没有“www”。因此,它不应包含在主机中。

这两个错误的地址都将我重定向到正确的地址,并显示 301 错误代码。如果我使用请求或功能更全的模块,它会自动跟随重定向。

我的验证:

c = httplib.HTTPSConnection('420101.com')
c.request("GET", "/strain-database")
r = c.getresponse()
print r.status, r.reason

200 OK

关于python - 使用 HttpLib 的 HTTP 获取请求 "Moved Permanently",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30178776/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com