捕获页面重定向的下载链接 (WGET)

2024-03-30

这是我的问题。

我目前正在为我编写一个脚本,该脚本可以自动下载一些我用来“清理”计算机的软件。

我已经能够使用如下下载 URL 进行下载:“https://www.driverscloud.com/plugins/DriversCloud_Win.exe https://www.driverscloud.com/plugins/DriversCloud_Win.exe“但不适用于在短暂等待后重定向到下载 URL 的 URL,如下所示:”https://www.ccleaner.com/fr-fr/ccleaner/download/standard https://www.ccleaner.com/fr-fr/ccleaner/download/standard".

我可以看到问题是我没有给 Wget 直接下载地址,但我希望能够使用该地址来做到这一点“https://www.ccleaner.com/fr-fr/ccleaner/download/standard https://www.ccleaner.com/fr-fr/ccleaner/download/standard”因为Piriform(Ccleaner的开发者)更新软件相当定期,并且下载地址根据版本号而变化(例如:https://download.ccleaner.com/ccsetup547.exe https://download.ccleaner.com/ccsetup547.exe -> https://download.ccleaner.com/ccsetup548.exe https://download.ccleaner.com/ccsetup548.exe).

那么我怎样才能要求 Wget 获取页面中包含的下载链接而不下载页面本身(因为我得到一个名为“标准”的文件,如 URL 末尾的“https://www.ccleaner.com/fr-fr/ccleaner/download/standard https://www.ccleaner.com/fr-fr/ccleaner/download/standard" ?

如果您能为我提供 Wget 或其他工具(例如 Curl)的解决方案,我将非常高兴:)。

先感谢您。


您不需要 PHP。wget独自一人就足以完成这项简单的工作:)

这是您需要的命令(我将在下面进行细分):

$ wget -r -l 1 --span-hosts --accept-regex='.*download.ccleaner.com/.*.exe' -erobots=off -nH https://www.ccleaner.com/fr-fr/ccleaner/download/standard

现在,详细说明其作用:

  • -r:启用递归,因为我们想要跟踪提供的页面上的链接
  • -l 1:我们只想递归一层深度,因为所需的 URL 位于同一页面上
  • --span-hosts:所需的文件与我们提供的原始 URL 位于不同的主机上。所以我们要求wget在使用递归时跨主机
  • --accept-regex=...:这指定将通过递归访问的链接的正则表达式。由于我们只需要一个文件并知道模式,因此我们制作了非常具体的正则表达式。
  • -erobots=off: The download.ccleaner.com主机有一个robots.txt禁止所有用户代理。但我们不会抓取域,因此禁用机器人文件
  • -nH:不要创建主机特定目录。这意味着 exe 现在将直接下载到您当前的文件夹中。

如果您想要更多自动化,您还可以附加&& rm -r fr-fr/使用上述命令删除您下载的基本页面以获得正确的链接。

Enjoy!

编辑:由于 OP 在 Windows 上,因此这里有一个专门用于在 Windows 上运行的更新命令。它不会单引号正则表达式字符串,因为这会导致 Windows shell 将正则表达式作为带有单引号的字符串传递。

$ wget -r -l 1 --span-hosts --accept-regex=.*download.ccleaner.com/.*.exe -erobots=off -nH https://www.ccleaner.com/fr-fr/ccleaner/download/standard
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

捕获页面重定向的下载链接 (WGET) 的相关文章

随机推荐

  • 我是否应该在数据流的最开始处期待 JPEG SOI 标记?

    或者我应该深入数据流寻找0xFF 0xD8顺序 From this Q https stackoverflow com questions 5413022 is the 2nd and 3rd byte of a jpeg image al
  • 从 CSV 文件中删除空格而不创建新文件

    我的 csv 工作表中有空格 我想将其删除 经过几个小时的搜索后 我意识到这是它的代码 input open file txt wb output open new file txt wb writer csv writer output
  • tpl 数据流:固定缓冲区大小而不丢弃项目

    在玩弄数据流之后 我遇到了一个新问题 我想限制所有块的输入队列 我的生产块 ActionBlock 正在快速创建 5000 个元素并将它们发布到广播块 因此 如果我将广播块的 BoundedCapacity 设置为 100 他会丢弃大量数据
  • 如何将整数数组从 matlab 传递到 mex?

    我想将一个整数数组从 matlab 传递到 mex 该数组例如是a 1 2 3 4 我写了以下代码 include
  • 从 vba 打开网站时,谷歌翻译无法在 IE 中进行翻译

    谷歌翻译不翻译文本 日语到英语 当打开网站并使用以下代码输入文本时 该函数始终返回 Function OutlookGetTransItem IE As Object URL As String trans text As String A
  • 是否有两个元素在其容器悬停时出现,然后在另一个元素悬停时消失?

    我有两个导航元素 它们设置为图像两侧的列 您可以在以下位置查看它们 我的网站 在这里 http www element17 com 单击任何图像 加载后将鼠标悬停在其上 我想要完成的任务如下 当光标位于图像外部时 两个导航按钮都设置为 0
  • chrome 中奇怪的颜色过渡行为

    我目前正在开发一个多主题应用程序以及 css 的过渡color 属性未按预期工作 在 Chrome 中 它不是立即将过渡应用于每个元素 而是根据元素的深度以某种方式延迟 我已经测试过该脚本 84 0 4124 1 官方版本 canary 6
  • Go 中有 uint64 文字吗?

    我正在看数字类型 https golang org ref spec Numeric types在围棋中 我想使用 uint64 文字 这在 Go 中可能吗 这是我想如何使用 uint64 文字的示例 for i 2 i lt k i 1
  • 仅替换整个单词,而不替换单词

    我试图仅替换整个单词 但我的脚本替换了该单词的所有区分大小写的实例 这是我的代码
  • 循环遍历 NSDictionary 以创建单独的 NSArray

    我有一个大NSDictionary我需要循环并创建单独的NSArrays 以下是内容 id text sub text text thumb url text title text 2010 2011 type
  • 如何为 iPad 创建表单弹出窗口 (iOS 8.1)

    我想使用 Swift 8 1 和演示文稿类型 Form Sheet 制作非常基本的弹出窗口 它应该是一个漂浮在屏幕中间的窗口 没有故事 我创建了两个视图控制器 一个按钮 并使用参数 Present As Popover 将按钮从一个控制器连
  • 从没有分支的分离提交中获取代码

    我有一个不在分支中的提交 它包含我所有的最新工作 我需要将其添加到主分支 我怎样才能做到这一点 git status显示这个 detached from b225b49 master saved work 如果我会失去它吗git check
  • 实现从 .net winforms 应用程序将文件拖到桌面吗?

    我有一个文件列表 其名称位于列表框中 其内容存储在 SQL 表中 并希望我的应用程序的用户能够选择列表框中的一个或多个文件名并将它们拖到桌面 从而生成桌面上的实际文件 我找不到任何有关如何执行此操作的文档 任何人都可以解释或指出解释吗 稍后
  • Scala 何时需要匿名函数和扩展函数的参数类型?

    Scala编译器什么时候真正需要匿名函数参数的类型信息 例如 给定这个函数 def callOn T R target T f T gt R f target 那么我不能像这样使用它 callOn 4 toString gt error m
  • 如何安装和使用 Apache Velocity?

    我已经安装了Apache服务器2 4和Ant 1 8 3 我已经下载了Velocity 1 7和Velocity工具2 0 我已经阅读了 Apache Velocity 的安装文档大约十遍 并且 Google 了两天 我仍然不知道如何处理这
  • ngOnInit 在 APP_INITIALIZER 完成之前启动

    APP INITIALIZER 运行一系列嵌套的承诺 我尝试过订阅 结果没有任何差异 APP INITIALIZER 在从 API 服务器检索数据之前需要进行身份验证 它还需要从 API 服务器拉取两个表 按顺序 在 api service
  • 手电筒打开时 AVCaptureSession 冻结

    我们的 iOS 应用程序具有条形码扫描功能 客户可以根据需要打开和关闭手电筒 在 iPhone X 上 且仅在 iPhone X 上 当 AvCaptureSession 运行且手电筒启用时 屏幕上的视频捕获会冻结 一旦手电筒再次关闭 视频
  • Django:一种更干燥的方法来防止编辑/删除对象?

    读完Django的权限文档后 我还是一头雾水 我想阻止用户编辑或删除他们不拥有的对象 我是这样写的并且有效 在views py中 def deleteReward request reward id reward get object or
  • C++ 中的浮点变量

    我正在学习C 并在一个简单的程序中遇到这些问题 所以请帮助我 这是代码 include
  • 捕获页面重定向的下载链接 (WGET)

    这是我的问题 我目前正在为我编写一个脚本 该脚本可以自动下载一些我用来 清理 计算机的软件 我已经能够使用如下下载 URL 进行下载 https www driverscloud com plugins DriversCloud Win e