我想下载一些字幕文件,以 rar 文件形式存储http://subs.sab.bz/该网站为其新版本提供 RSS 提要。不幸的是,提供的链接将打开下载页面,但无法获取文件。
下载页面中间有一个按钮,点击它就会触发所需rar文件的下载。无论如何,如果我右键单击并复制链接,然后尝试打开它,浏览器将打开下载页面本身,但不会下载文件。当我尝试在wget和curl中使用文件的下载链接时,会下载一个php文件。我读到,在这种情况下,服务器端脚本用于将正确的链接传递到客户端计算机。
因此,我正在寻找一种方法来强制 wget 模拟此链接的 onclick 操作。我对 html css 和 javascript 的了解足以找到下载链接的其他属性。
这还可以吗?
附言。我很困惑为什么这个问题被否决了?有什么好的解释吗,我是否违反了发帖规则或其他什么,谢谢。
答案1
你混淆了一些事情。 “Onclick”操作是指 JavaScript,并且是客户端操作。您必须检查这些链接上的 JavaScript 挂钩如何解析 URL。但是,这里没有执行 onclick 操作。
该网站的作用是推荐人检查,也称为“盗链保护”。浏览器默认发送一个referrer值,它是上一页的URL。这样做是为了防止其他网站通过发布文件的直接链接来窃取该网站的带宽。
如果您尝试复制链接并将其直接粘贴到浏览器中,您将得到与您在问题中描述的相同的行为,因为浏览器将不知道发送引荐来源网址信息。
告诉 wget 伪造引荐来源网址值的选项是--referer
,并且-e
对于curl。该值通常可以安全地设置为网站的根目录 - 网站通常不会检查该值是否正确那彻底:
wget -O output.rar --referer http://subs.sab.bz/ 'http://subs.sab.bz/your-link-here'