【发布时间】:2021-07-15 04:23:24
【问题描述】:
我是网络抓取的新手,偶然发现了一个意想不到的挑战。目标是为网站输入不完整的 URL 字符串,并“捕获”网站重定向功能返回的更正 URL 输出。我指的具体网站是Marine Traffic。
在搜索特定的船舶资料时,正确的查询字符串应包含参数shipid、mmsi 和imo。例如,此链接将返回一个网页,其中包含特定船只的资料:
事实证明,只有 imo 参数的查询字符串将重定向到 exact 相同的 url。因此,例如,以下查询将重定向到与上述相同的查询:
https://www.marinetraffic.com/en/ais/details/ships/imo:9337987
我的问题是,在 bash 中使用 cURL 或其他此类工具(例如 python requests 库),如何以自动方式捕获重定向 URL?卷曲第一个 URL 会返回完整的 html,而卷曲第二个 URL 会引发拒绝访问错误。为什么浏览器允许这样做?如果有的话,解决方法是什么?捕获重定向 URL 的最佳做法是什么(使用 python 或 bash)?
curl https://www.marinetraffic.com/en/ais/details/ships/imo:9337987
#returns Access Denied
注意:将用户代理添加到 curl --user-agent 'Chrome/79' 并不能解决此问题。避免了错误,但没有返回任何内容。
【问题讨论】:
标签: python curl redirect web-scraping python-requests