直接用JavaScript代码批量处理浏览器全部页面,批量向每个页面注入JS脚本甚至JQuery脚本,支持批量保存为文件的函数调用。
这是一个插件中的插件!它是一个支持JS批处理的开发工具。你可以在这里用JS代码直接控制谷歌浏览器,甚至控制每个页面内容。
爬虫是编写kSpider工具的最初目的,但实际上它可以做的更多,让你释放想象!
更多内容请参照我的上一篇文章。
示例代码,运行它就可以保存指定窗口的全部标签卡页面内容为多个html文件。
function sampleFunc() {
if (!data.curWin) return
let tabsinfo = { windowId: data.curWin.id, url: ['http://*/*', 'https://*/*'] } //从上面下拉菜单改变data.curWin.id
let querystr = '$(document).find("body").html()'//获取页面内容,完整内容用document.documentElement.innerHTML
chrome.tabs.query(tabsinfo, function (tabs) {
for (var i = 0; i < tabs.length; i++) {
chrome.tabs.executeScript(tabs[i].id, { code: querystr }, function (result) {
saveContent(result) //这个函数是kSpider专有的,更多内容请参考HELP帮助
})
}
})
}
sampleFunc()
以下是更新手记。
v2020.04.06提供以下功能:
RunScript执行代码
等同于在Chrome扩展内直接运行Js代码。默认包含了一个示例,可以向特定窗口的所有标签页执行某段代码,实现页面内容的保存。
v2020.04.05提供以下功能:
保存当前页面内容(Ctrl+Shif+S)
不同于常规模式Ctrl+S保存网页源代码文件,kSpider保存的是所见的内容。 对于现代的Web页面开发技术(React、Vue)页面,网页的源代码中往往并不包含真实所见的数据。 kSpider保存当前页面的功能可以有效获取当前页面数据。 目前版本的kSpider只下载http(s)开头的地址,也不保存页面相关的图片或其他资源文件。
保存当前窗口所有页面内容
一键保存当前窗口所有的页面为多个文件。
关于示例代码
- 可以把整个示例代码换为最简单的alert('Hello world!')来测试体验。
- 代码将在Chrome插件环境下运行,拥有kSpider所有的授权。可以直接使用类似chrome.tabs、chrome.windows这样的功能。
- 你可以参照谷歌的官方文档说明(复制到浏览器中打开):
- 代码顶部的下拉菜单用于切换执行命令的窗口,它保存在data.curWin变量中。窗口增多或关闭后需要进行刷新。
- 在向页面注入的代码中,可以使用JQuery语法。因为每个页面加载完成后,kSpider都会自动预先注入JQuery库。
- 使用chrome.tabs.query获取标签页列表,使用chrome.tabs.executeScript向页面注入脚本。具体请参照上面链接的Chrome官方文档。
- 注入页面的脚本querystr字符串是运行在页面环境中的,因此它不能使用chrome.tabs类似的功能。
- 函数saveContent(str)是个小礼物,它用来帮助你将字符串内容存储为html文件。
项目地址
项目已经放在我的网站上开源了,大家可以直接下载到本地,然后浏览器加载这个项目运行使用。
http://10knet.com/zhyuzh/kspider
欢迎你把发现的问题或者好的建议在简书这里留言。
欢迎关注我的专栏( つ•̀ω•́)つ【人工智能通识】
每个人的智能新时代
如果您发现文章错误,请不吝留言指正;
如果您觉得有用,请点喜欢;
如果您觉得很有用,欢迎转载~
END
网友评论