chrome插件网页抓取(《Chrome插件开发,入门Demo》(END_)开发)
优采云 发布时间: 2022-02-14 18:16chrome插件网页抓取(《Chrome插件开发,入门Demo》(END_)开发)
Chrome插件的介绍demo见:《Chrome插件开发,入门Demo》
Chrome插件可以获得你想要的所有权限。比如可以请求跨域网站,可以修改你打开的网站的js内容的html内容,达到在网页上植入内容的目的。针对这些,我建议大家可以制作一些工具自己使用,不要制作一些恶意插件来诱导网友安装使用,达到自己不可告人的目的!
关于如何通过插件修改网页内容(包括HTML和JS等),本文通过一个场景示例演示如何进行。
场景:
我个人有一个路由器,型号为H3C-XXX,我现在有一个需求,就是要在路由器中保持大量的dns解析。
但是这个路由器限制添加dns记录的数量,只允许20条(路由器是企业级路由器,很贵,但是也比较老了。想吐槽厂家太不厚道了,只给 20)
查看网页源码后发现网页中有一个全局js变量设置了20的限制,然后通过postman直接调用接口可以绕过js限制20添加成功,所以我我准备做一个超级简单的chrome插件来改变这个页面的变量值,比如改成99999。
以下是插件的 manifest.json 和 js 脚本:
清单.json
{
"name":"H3C(Inject DOM)",
"description":"H3C路由器DNS管理页内容修改",
"version":"1.0.0",
"manifest_version":2,
"content_scripts": [
{
"matches": ["http://192.168.1.1/*"],
"js": ["myscript.js"],
"run_at": "document_start"
}
]
}
注意:“run_at”设置为“document_start”
myscript.js
// 绑定这个事件需要在 manifest 中设定 "run_at": "document_start"
document.addEventListener('DOMContentLoaded', fireContentLoadedEvent, false);
function fireContentLoadedEvent () {
//console.log ("DOMContentLoaded");
// PUT YOUR CODE HERE.
//document.body.textContent = "Changed this!
// Checking page title
if (document.title.indexOf("STATIC DNS SERVER") != -1) {
// 通过追加script脚本修改变量
var script = document.createElement("script");
script.textContent ="dnshn_maxnum='99999'";
// 追加到head的结尾,复写这个变量的值
if(document.head){
document.head.appendChild(script);
}
}
}
最后,加载或打包插件,添加到浏览器的插件中即可享用。
有关如何将插件打包加载到浏览器中的详细信息,请参见我在本文开头写的一个演示。
(结尾)