gpt4 book ai didi

python - 如何在 Python 中使用请求处理 异常?

转载 作者:太空宇宙 更新时间:2023-11-04 00:37:21 25 4
gpt4 key购买 nike

我使用的请求取得了很好的效果,但是对于这个特定的 url,我遇到了重定向循环中断。

s = requests.Session()
page = s.get('http://pe.usps.gov/text/pub28/28apc_002.htm')
tree = html.fromstring(page.content)
street_type = tree.xpath(r"//*[@id='ep533076']/tbody/tr[2]/td[1]/p/a")
print(street_type)

我特别想知道是否有一种方法可以为请求分配 header 以避免重定向。我已经测试了实际的 url,它看起来有效。

谢谢

最佳答案

重定向是服务器发送的响应。它通常是 HTTP <301><302>响应,它说“嘿,我知道你在找什么,它就在这里......”并向你发送一个新的查找位置。是的,这些可以链接在一起,是的,你可以在循环中结束。这就是最大重定向限制的用途。

您可以使用以下方法设置请求中允许的重定向次数:

s.max_redirects = 50   # the default is 30

但这并不能解决问题。在这种特殊情况下,服务器正在寻找您正在使用的浏览器类型,并在找不到它正在寻找的内容时重定向您。您可以通过添加 user-agent 来模仿浏览器字段到标题。

推荐用法:将 header 设置为单个请求的通用浏览器

session.get(url, headers={'user-agent': 'My app'})

# returns:
<Response [200]>

原帖:设置整个session的header,不一定是你想要的。

s.headers = {'user-agent': 'some app'}
s.get('http://pe.usps.gov/text/pub28/28apc_002.htm')

# returns:
<Response [200]>

关于python - 如何在 Python 中使用请求处理 <TooManyRedirects : Exceeded 30 redirects.> 异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43421026/

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