某些下载有时会失败,我想将 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 的历史数据库中提取下载链接。
- 找到
History
文件:- 在 macOS 上:
~/Library/Application\ Support/Google/Chrome/Default/
- 在 Windows 上:
%LocalAppData%\Google\Chrome\User Data\Default
- 在 Linux 上:
~/.config/google-chrome/Default
- 在 macOS 上:
- 将文件复制
History
到另一个位置(Chrome 打开时无法使用原始文件)。 - 现在,你可以从复制的文件中提取下载链接,使用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