Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用urllib2获取所有重定向URL_Python_Urllib2_Urllib_Http Redirect - Fatal编程技术网

Python 如何使用urllib2获取所有重定向URL

Python 如何使用urllib2获取所有重定向URL,python,urllib2,urllib,http-redirect,Python,Urllib2,Urllib,Http Redirect,Im使用urllib2获取链接的最终url,无论是否存在重定向。我的简单代码如下所示: fileobj = urllib.request.urlopen(adress, timeout=30) url = fileobj.geturl() 但当有几个重定向,我想得到不同重定向的所有网址。我如何使用urllib2实现这一点,我正在阅读文档,但找不到任何有用的东西。也许有人能给我一个提示,给我指出正确的方向 也可以使用另一个库,但不能使用请求,因为我的tcp连接池有问题 太多了 您可以构建自己的o

Im使用urllib2获取链接的最终url,无论是否存在重定向。我的简单代码如下所示:

fileobj = urllib.request.urlopen(adress, timeout=30)
url = fileobj.geturl()
但当有几个重定向,我想得到不同重定向的所有网址。我如何使用urllib2实现这一点,我正在阅读文档,但找不到任何有用的东西。也许有人能给我一个提示,给我指出正确的方向

也可以使用另一个库,但不能使用请求,因为我的tcp连接池有问题


太多了

您可以构建自己的opener和子类
urllib2.HTTPRedirectHandler
。您可以参考Python的章节。这非常有帮助。

您对
请求有什么问题?该库明确包含完整的重定向历史记录。如前所述,requests.get将tcp连接保持打开太长时间,并且不会将其返回池。现在我只是使用head方法,我没有这个问题,但也没有重定向历史,也没有机会得到最终的url。这就是为什么我将请求和urllib2结合使用的原因。但不管怎样,Martijn我也对未来项目中的请求案例感兴趣。我知道我可以访问r.history并查看发生的不同重定向。但是,如何获得每个重定向的url呢?我在基本和高级指南上没有找到任何东西。太多了!我怀疑您可能误解了Keep-Alive connections,即保持连接处于打开状态,以便对同一服务器的后续请求进行重用。有关重定向历史记录,请查看已保存响应上的
位置
标题。有关如何管理连接,请参阅。Thx我将对此进行查看!为了更好地理解urllib2,您还可以参考。