我已经使用 Greasemonkey 从页面捕获了数据列表。
GM脚本
var hit = GM_getValue("hit") || 0;
var _url = "http://localhost:8080/test?p=$$pageNo$$";
_url = _url.replace("$$pageNo$$", hit);
GM_setValue("hit", ++hit);
if(hit <= 100) {
window.location.href = _url;
}
该脚本将运行第 n 次并捕获 <10K data, now i facing the issue in storing the captured data in some file. Anyone has any idea about how we can store the captured data into file/repo?
谢谢 - 维斯瓦纳坦 G
一个非常快速且简单的解决方案是使用 FileSaver.js :
1) 将以下行添加到 Greasemonkey 脚本的 ==UserScript== 部分
// @require https://raw.githubusercontent.com/eligrey/FileSaver.js/master/dist/FileSaver.min.js
将以下 2 行代码添加到 GM 脚本中
var blob = new Blob(["你好,世界!"], {type: "text/plain;charset=utf-8"});
saveAs(blob, "hello world.txt");
此代码示例将显示一个对话框,用于下载名为“hello world.txt”的文件,其中包含文本“Hello, world!”。只需将其替换为您选择的文件名和文本内容即可!
不,无法将其写入文件,但如果您真的很无聊,可以将其发布到 http://pastebin.com(或任何其他接受带有一堆数据的 POST 请求的 URL) .
GM_xmlhttpRequest({
method: "POST",
url: "http://pastebin.com/post.php",
data: <your data here>,
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
onload: function(response) {
alert("posted");
}
});
请注意,您需要有一个pastebin帐户才能使用该API。
如果您确实需要将文件写入本地文件系统,请在桌面上运行Web服务器,然后将http PUT请求的结果保存到磁盘。
我使用这个技巧从 Tampermonkey 脚本下载文件:
var saveData = (function () {
var a = document.createElement("a");
document.body.appendChild(a);
a.style = "display: none";
return function (data, fileName) {
var blob = new Blob([data], {type: "octet/stream"});
var url = window.URL.createObjectURL(blob);
a.href = url;
a.download = fileName;
a.click();
window.URL.revokeObjectURL(url);
};
}());
然后调用它:
saveData("this data will be written in the file", "file.txt");
它的工作原理是创建一个隐藏元素并模拟该元素被单击。其行为就像用户单击下载链接一样,因此浏览器将下载该文件,并保存在浏览器放置下载文件的任何位置。
是的,您可以写入文件。 但出于明显的安全原因,并非系统中的所有地方, 你可以在cookies目录中写入
var cookie_name="YourCookie";
var cookie_value="What you want to save inside your cookie";
var d = new Date();
d.setTime(d.getTime() + (28*24*60*60*1000));
var expires = "expires="+ d.toUTCString();
document.cookie = cookie_name +"=" + cookie_value + ";" + expires + ";path=/";
那么你可以
编写一个从 cookie 目录到桌面的文件副本脚本,具体取决于 你的操作系统
或从 Chrome Inspect -> Application -> Cookies 读取值
或检索 Cookie 并使用
在控制台中打印它decodeURIComponent(document.cookie);
// @grant GM_download
function saveData(data, filename) {
const blob = new Blob([data], { type: "text/plain" });
const url = URL.createObjectURL(blob);
GM_download({
url: url,
name: filename,
saveAs: false,
});
}
saveData("hello world", "hello.txt");