从持久URL获取URL重定向的有效方法

时间:2019-04-21 19:42:42

标签: python-3.x python-requests url-redirection

我有一个数据集,该数据集的一部分包含一个指示资源位置的URL字段。某些URL是永久性的(例如句柄和DOI),因此需要将其解析为原始URL。我主要使用Python,到目前为止,似乎可行的解决方案涉及使用Requests HTTP library

import requests
var_output_url = requests.get("http://hdl.handle.net/10179/619")
var_output_url.url

虽然此解决方案有效,但它非常慢,因为我必须遍历约4,000个文件,每个文件具有约2,000个URL。有没有更有效的方法来解决URL重定向?

我分批测试了当前的解决方案,耗时近5分钟;以这种速度,我要花几天(13天)来处理我知道的所有批次,不一定要那么长,我可以并行运行它们。

1 个答案:

答案 0 :(得分:1)

使用HEAD代替GET应该只给您标题,而不给资源正文,在您的示例中为html页面。如果仅需要解决URL重定向,则将减少网络上数据传输的时间。使用参数allow_redirects=True允许重定向。

var_output_url = requests.head("http://hdl.handle.net/10179/619", allow_redirects=True)
var_output_url.url
>>> 'https://mro.massey.ac.nz/handle/10179/619'