我们能用chrome.downloads.download下载完整的网页吗?(Google Chrome扩展)
Can we download a webpage completely with chrome.downloads.download? (Google Chrome Extension)
我想保存一个wabpage完全从我的谷歌Chrome扩展。我添加了"downloads", "<all_urls>"
权限,并确认以下代码将Google页面保存到google.html
。
chrome.downloads.download(
{ url: "http://www.google.com",
filename: "google.html" },
function (x) { console.log(x); })
但是,这段代码只保存html文件。样式表、脚本和图像不会被保存。我想完全保存这个网页,就像我保存这个带有对话框的页面一样,选择Format: Webpage, Complete
。
我查阅了文件,但找不到方法。
所以我的问题是:我怎么能下载一个网页完全从一个扩展使用api(s)的谷歌浏览器?
downloads
API只下载单个资源。如果你想保存一个完整的网页,那么你可以先打开网页,然后使用chrome.pageCapture.saveAsMHTML
将其导出为MHTML,使用URL.createObjectURL
为导出的Blob
创建blob:
-URL,最后使用chrome.downloads.download
API保存此URL。
pageccapture API需要一个有效的tabId。例如:
// Create new tab, wait until it is loaded and save the page
chrome.tabs.create({
url: 'http://example.com'
}, function(tab) {
chrome.tabs.onUpdated.addListener(function func(tabId, changeInfo) {
if (tabId == tab.id && changeInfo.status == 'complete') {
chrome.tabs.onUpdated.removeListener(func);
savePage(tabId);
}
});
});
function savePage(tabId) {
chrome.pageCapture.saveAsMHTML({
tabId: tabId
}, function(blob) {
var url = URL.createObjectURL(blob);
// Optional: chrome.tabs.remove(tabId); // to close the tab
chrome.downloads.download({
url: url,
filename: 'whatever.mhtml'
});
});
}
试一下,把前面的代码放在background.js
,
向manifest.json
添加权限(如下所示)并重新加载扩展。然后example.com将被打开,网页将被保存为一个独立的MHTML文件。
{
"name": "Save full web page",
"version": "1",
"manifest_version": 2,
"background": {
"scripts": ["background.js"]
},
"permissions": [
"pageCapture",
"downloads"
]
}
不,它不会为您下载所有文件:图像,js, css等。你应该使用像HTTRACK.
相关文章:
- 如何在Google柱状图中动态添加行/列
- 在同一网页上添加多个 Google 地点实例
- 使用SoundJS离开网页会导致Google Chrome崩溃
- 列出网页上给定文件夹中的 Google 云端硬盘文件
- 向网页添加未预定义数量的输入框(并将其与 Google App Engine 配合使用)
- 阻止 Google 根据我网站上的链接创建网页
- 在 iOS 的 Safari 中打开 Google Chrome 中的网页
- Google Maps JavaScript API v3 - 在iPhone上查看的网页上的自动完成字段不存储值,不返
- 使用Java,如何验证/验证Google Analytics异步跟踪代码(分析片段)位于网页源的标签部分下
- Google Analytics(分析)跟踪网页浏览会自动向网址添加斜杠
- 在Android版Google Chrome上调用Javascript Notification API,无法直接从网页
- 在我的网站上嵌入Google Hangout(从y网页开始功能齐全)
- Google OAuth 2.0 "请求权限"网页不关闭(FF, Chrome)
- 我们能用chrome.downloads.download下载完整的网页吗?(Google Chrome扩展)
- 无法在Google Apps Script日志中看到完整的抓取网页
- 如何避免加载Google jsapi阻塞网页加载
- Google Chrome扩展中的网页抓取(JavaScript+ChromeAPI)
- 如何使用扩展将代码注入facebook/google网页
- 从Google电子表格数据在网页上构建/填充下拉菜单
- 从HTML网页中的Google Maps iframe获取坐标