我是对Temu后台运行这个脚本,这个json里面存的是一些1688的商品信息,脚本的主要功能是获取网页tbody下面每个tr对应的SKC(SKC可以理解为Temu的一个商品ID),然后从json里面获取出SKC对应的1688商品,然后在网页中插入一些样式,用来展示对应的1688商品。js代码中还有一些监听鼠标点击、tooltip等代码逻辑,js代码大概有900多行。主要还是这个json的内容大小不确定,有时候会比较大,大概是超过800KB左右就注入不了浏览器运行。这个json是从一个词典变量,通过“转义文本为合法json值”,然后再插入到js里面的。主要是我不知道转义之后这个json文本有没有换行符之类的,如果没有换行符,进行普通的压缩可能也没有太大的效果。
json格式如下:
{
"SKC ID 1": [
{
"1688商品ID":"123456",
"链接": "https://....html"
},
{
"1688商品ID": "123456",
"链接": "https://....html"
}
],
"SKC ID 2": [
{
"1688商品ID": "123456",
"链接": "https://....html"
},
{
"1688商品ID": "123456",
"链接": "https://....html"
}
]
}
一个商品信息里面,不只是有ID和链接2个字段,有20几个字段
我想到了两个思路,还没有测试,也没有那么大的数据,不知是否可以绕过这个限制大小
1.使用浏览器的cdp协议中的Runtime.evaluate(运行js代码)的命令注入js代码数据
var n={tabId: t};
chrome.debugger.attach(n, "1.3");
chrome.debugger.sendCommand(n, "Runtime.evaluate", {expression: h}); //h为js数据变量
2.增加一个script标签元素,变相加载一个js文件的方式注入js代码,本地搭建一个服务器网址,使用这个模块 HTTP服务器 - Quicker
如:<script src="https://192-168-1-3.lan.quicker.cc:8080/11.js"></script>
const injectScript = (file, node) => {
const th = document.querySelector(node);
const s = document.createElement('script');
s.setAttribute('type', 'text/javascript');
s.setAttribute('src', file);
th.appendChild(s);
};
injectScript('https://192-168-1-3.lan.quicker.cc:8080/11.js', 'body');