我有一个数据集,该数据集的一部分包含一个指示资源位置的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天)来处理我知道的所有批次,不一定要那么长,我可以并行运行它们。
答案 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'