【发布时间】:2018-06-21 23:10:18
【问题描述】:
我有一个网址http://www.vbb.de/de/datei/GTFS_VBB_Nov2015_Dez2016.zip,它会将我“重定向”到http://images.vbb.de/assets/ftp/file/286316.zip。重定向引号,因为 python 说没有重定向:
In [51]: response = requests.get('http://www.vbb.de/de/datei/GTFS_VBB_Nov2015_Dez2016.zip')
...: if response.history:
...: print "Request was redirected"
...: for resp in response.history:
...: print resp.status_code, resp.url
...: print "Final destination:"
...: print response.status_code, response.url
...: else:
...: print "Request was not redirected"
...:
Request was not redirected
状态码也是 200。response.history 什么也没给出。 response.url 给出第一个 url 而不是真实的。但是可以在 firefox -> developer tools -> network 中获取真正的 url。我如何在 python 2.7 中制作?提前致谢!!
【问题讨论】:
-
我在该请求中看不到任何重定向。我得到一个
200响应代码(重定向将返回一个301或302响应代码和Location标头)。 -
@larsks,是的,这甚至是问题所在。如果有重定向,我可以轻松获取 url。
-
所以我想我不明白你的问题。
requests只是一个 http 模块。它根本不解析内容。如果由于文档中的内容(meta标签、javascript)而发生重定向,则您需要自己处理返回的内容。 -
真正的问题是服务器返回什么以便 Firefox 获取它,以及如何在代码中做到这一点。您的问题没有包含足够的详细信息来帮助我们帮助您解决这个问题。也许一些勇敢的灵魂想要进行挖掘,但它确实应该从一开始就包含在您的问题中。
-
Dmitri,正如我所说,重定向是由于文档内容而发生的(在本例中,
<head>元素中的meta http-equiv="refresh"标记)。如果需要,您需要自己解析。
标签: python python-2.7 url redirect python-requests