捕获页面重定向的下载链接 (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) 的相关文章

  • Windows Workflow Foundation 4 (WF4) 延迟

    我正在与 Visual Studio 2010 的候选版本一起使用 Wf4 编写一个用于批准资源请求的新工作流程 在我的工作流程中 如果请求未获得批准 我希望请求在几天后过期 我们在 WF 3 5 Visual Studio 2008 中通
  • 将 Cefsharp 中的文件下载到允许用户打开的目录

    我正在致力于构建一个原始且基本的网络浏览器 我的工作场所希望在该浏览器上托管一些内部应用程序 我在用着cefSharp在用 C 编写的 WinForms 应用程序中 我已经成功构建了浏览器来导航应用程序 但我在下载处理程序方面遇到了问题 我
  • 更改desktop.ini不会在Windows中自动更新文件夹图标

    我使用此批处理脚本将所有文件夹和子文件夹的图标更改为位于文件夹中的 ico 文件 但是 资源管理器中的文件夹图标不会改变除非我手动重命名desktop ini将资源管理器中的文件更改为其他内容 然后返回desktop ini或者例如将字母更
  • 更改 mingw' 启动目录或创建 mingw 符号链接

    设置 mingw 控制台启动目录的最简单方法是什么 我只使用 mingw 进行编译 但由于缺乏编辑器甚至符号链接 我很困惑如何告诉 mingw 控制台出现在不同的目录而不是常规的主目录中 如果有人知道如何像 cygwin 那样将 真正的 符
  • 移动/调整窗口大小时闪烁

    我开发了一个显示 jpeg 图像的应用程序 它可以显示 4 个图像 屏幕的每个象限各一个 为此 它使用了 4 个窗口 窗口没有边框 框架 也没有标题栏 当加载新图像时 窗口大小会根据新图像进行调整 然后显示该图像 尤其是当窗户做得较大时 经
  • ExpressJS - DELETE 请求后 res.redirect

    我一直在寻找如何执行此操作 我正在尝试在发出删除请求后重定向 这是我正在使用的代码没有重定向 exports remove function req res var postId req params id Post remove id p
  • Apache 从子域重写为 www 但保留所有永久链接

    我已经研究了大约 2 个小时 虽然大多数主题都很相似 但没有一个解释如何做我想做的事情 我正在将一个结构为 blog domain com 的博客移至 www domain com blog 当我重定向时 我需要保留博客文章的永久链接 所以
  • 从命令行运行 R 代码 (Windows)

    我在名为 analysis r 的文件中有一些 R 代码 我希望能够从命令行 CMD 运行该文件中的代码 而无需通过 R 终端 并且我还希望能够传递参数并在我的代码中使用这些参数 例如就像下面的伪代码 C gt execute r scri
  • 以编程方式从 java 代码中查找 java.exe 的绝对路径

    如果我有一个由用户启动的 java jar 或类文件 假设在环境变量中设置了 java 路径 那么我如何从代码中找出 java exe javaw exe 的绝对路径文件正在启动 就像在 ubuntu 上一样 我们可以运行 which ja
  • 如何在Windows上分离“Git bash”中启动的“git gui”?

    例如 我开始 git bash 我导航到某个目录 I start git gui 我关闭控制台窗口或按 Ctrl C Git gui 的窗口消失了 即使我用过git gui disown 即使当我按 Ctrl C 时它不在前台 如何正确分离
  • 设置 Form.KeyPreview = true 的缺点?

    我想知道 Form KeyPreview 属性实际上有什么用处 它为什么存在以及将其设置为 true 会带来什么 风险 我想它一定有some负面影响 否则它根本不应该存在 或者至少默认情况下是正确的 EDIT 我很清楚what确实如此 我问
  • Google 地图 API 标记图标 URL?

    我正在尝试将标记图标更改为 红圈 或 红针 或其他任何内容 在这些代码中 markerOptions icon images beachflag png 标记不显示 但如果我做icon一行注释行 因此标记显示为 red pin icon 所
  • 如何使用命令行压缩文件?

    我想使用批处理文件命令 Windows XP 批处理文件 压缩目录 例如 如果我想解压缩一个文件意味着我可以使用jar xf file zip java bat 文件命令 就像我想要一个命令行批处理来压缩目录一样 如果您使用的是 Ubunt
  • 自定义波特率,redux

    我遇到的问题详述如下自定义波特率 https stackoverflow com questions 7714060 custom baud rate SetCommState 波特率 921600 失败 但波特率 115200 成功 尽管
  • URL 中的 %2F 中断并且未引用所需的 .php 文件 [重复]

    这个问题在这里已经有答案了 我需要将 作为变量作为 URL 的一部分传递 我的结构如下所示 www domain com listings page 1 city Burnaby South type Townhome bedroom 2
  • 对于多重继承,使用隐式转换而不是 QueryInterface() 是否合法?

    假设我有一个类实现两个或多个 COM 接口 正如here https stackoverflow com questions 1742848 why exactly do i need an explicit upcast when imp
  • NodeJS Express Windows 最大连接数设置

    在哪里设置nodejs的最大连接数 用于使用express get 在 Windows 10 中 与linux中的最大文件 描述符 设置有关吗 有该设置的 Windows 版本吗 最好是在nodejs中进行设置 以便在迁移到unix时兼容
  • Java中使用正则表达式确定字符串是否为URL [重复]

    这个问题在这里已经有答案了 可能的重复 检查字符串是否为有效 URL 的最佳正则表达式是什么 https stackoverflow com questions 161738 what is the best regular express
  • 如何向未知用户目录读取/写入文件?

    我正在尝试从用户目录 C Users USERNAME Test Source 读取和写入文件 但我未能成功找到任何有关如何自动检测用户名的资源 其中的 USERNAME上面的例子 或者无论如何 我可以让它读取和写入目录 而不需要知道用户名
  • c# WebClient DownloadProgresschanged TotalBytesToReceive = -1

    我浏览了一下网络 没有看到其他人遇到这个问题 我正在使用使用 DownloadFileAsync 的 Web 客户端 当事件处理程序 DownloadProgressChanged 被调用时 TotalBytesToReceive 来自 D

随机推荐

  • 我是否应该在数据流的最开始处期待 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