我想了解URL是否处于非活动状态。
对于此任务,我将使用requests
库。我将使用不同的标记来了解 URL 是否处于非活动状态。
一个来自标记将被redirects
.
如果非活动网站对另一个网站进行了重定向,则表示该网站处于非活动状态。
我想用于requests
库中的is_permanent_redirect
或is_redirect
。
我的任务需要什么is_permanent_redirect
或is_redirect
?
如何使用is_permanent_redirect
或is_redirect
为此任务编写更好的代码?
Python 请求库具有以下选项:
- 处理默认重定向
- 获取重定向并找出所需的更改
为了手动处理重定向,我们需要使用以下属性:allow_redirects=False
例如:
>>>import requests
>>> r = requests.get('http://github.com/', allow_redirects=False )
>>> r.is_redirect
True
>>> r.is_permanent_redirect
True
谈到is_permanent_redirect
和is_redirect
之间的区别,通过他们的代码,我可以看到以下检查:
is_redirect:这将检查所有 3xx 状态代码,例如
codes.moved, # 301
codes.found, # 302
codes.other, # 303
codes.temporary_redirect, # 307
codes.permanent_redirect, # 308
is_permanent_redirect:这仅检查
codes.temporary_redirect, # 307
codes.permanent_redirect, # 308
这应该为您提供有关实际 300 状态代码的更多信息:https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection
我的建议是,如果您将is_redirect
用于您的用例,这应该足以捕获所有移动的 URL。这样,您可以查看 URL 是否处于非活动状态。然而,这取决于您选择的何时将 URL 标记为非活动状态。