如何从 chrome://downloads 导出所有下载链接?

如何从 chrome://downloads 导出所有下载链接?

某些下载有时会失败,我想将 Chrome 下载列表中的所有链接转移到下载管理器。

如果我保存 chrome://downloads 页面,我会得到一个空的 html 文件。

有什么方法可以从 Google Chrome 下载页面导出所有下载链接(您可以通过点击Ctrl+来访问J)?

答案1

不幸的是,我搜索了网络和 Chrome 网上应用店,没有可以执行此操作的扩展程序。

只有当我尝试编写脚本时,我才发现事情并不是那么简单,因为有很多嵌套的阴影 DOM 元素,尽管如此,我还是设法编写了它。

下面是您需要粘贴到控制台(Ctrl++ )中以获取所有链接的代码。ShiftJ

ditems = document.querySelector("downloads-manager").shadowRoot.querySelector("iron-list").querySelectorAll("downloads-item");

var div = document.createElement('div');

[].forEach.call(ditems, function (el) {
var br = document.createElement('br');
var hr = document.createElement('hr');
div.appendChild(el.shadowRoot.querySelector("#url"));
div.appendChild(br);
div.appendChild(hr);

});
document.body.innerHTML=""
document.body.appendChild(div);
document.head.style.innerHTML="";

Ctrl此后,您可以使用+保存结果页面S

答案2

您可以从 Chrome 的历史数据库中提取下载链接。

  1. 找到History文件:
    • 在 macOS 上:~/Library/Application\ Support/Google/Chrome/Default/
    • 在 Windows 上:%LocalAppData%\Google\Chrome\User Data\Default
    • 在 Linux 上:~/.config/google-chrome/Default
  2. 将文件复制History到另一个位置(Chrome 打开时无法使用原始文件)。
  3. 现在,你可以从复制的文件中提取下载链接,使用sqlite3CLI,或者使用 GUI SQLite 查看器,例如SQLite 数据库浏览器。下载链接见表downloads_url_chains

类似的问题包含一些有用的 sqlite3 命令:Chrome 浏览器历史记录可以导出到 HTML 文件吗?

答案3

以下是我截至 2023 年 6 月(版本 112.0.5615.121)用于获取 URL 的方法:

var items = document.getElementsByTagName('downloads-manager')[0].$.downloadsList._physicalItems;
for (let i = 0; i < items.length; i++) {
    console.log(items[i].$.name.innerHTML + ' - ' + items[i].$.url.innerHTML);
}

该脚本以 18 个为一批获取下载 URL 以及文件名。如果有超过 18 个链接,您可能需要滚动下载页面以加载下一批并多次运行该脚本。

答案4

您还可以使用 NirSoft 专用应用程序 BrowserDownloadView(我刚刚在 2023-12-01 测试过)。它与 Chrome(最新版本,在 Windows 10 Enterprise 上)配合得非常好

关联: https://www.nirsoft.net/utils/web_browser_downloads_view.html

相关内容