我有一个网址列表,但其中许多已过时,会重定向到其主页或其域中的其他网页。我想从列表中过滤掉这些网址。使用requests
,如何过滤掉未在其预定位置打开的网址?
答案 0 :(得分:5)
您应该查看response history。 注意:并非所有网站都使用重定向来向您显示其他网页。
>>> r = requests.head('http://github.com', allow_redirects=True)
>>> r.url
'https://github.com/'
>>> r.history
[<Response [301]>]
您还可以阻止重定向并检查回复status_code
是否显示,请参阅this example:
>>> r = requests.get('http://github.com', allow_redirects=False)
>>> r.status_code
301
>>> r.history
[]
答案 1 :(得分:0)
这是我在项目中使用的方法:http://www.elfinite.com/
def get_last_redirected_url(self, url):
"""
"""
try:
response = requests.get(url)
if response.history:
# Request was redirected
return response.url
else:
# Request was not redirected"
return url
except Exception as e:
return False
pass