我写了一个简短的扩展名,可以捕获我在Chrome中的鼠标移动,我想在Javascript捕获它们后立即在Python中使用这些坐标,有关内容文件中的简短Javascript代码,请参见下文:
var actualCode = `
document.onmousemove = function(e){
var pageCoords = "( " + e.pageX + ", " + e.pageY + " )";
console.log(pageCoords);
};
`;
var script = document.createElement('script');
script.textContent = actualCode;
(document.head||document.documentElement).appendChild(script);
script.remove();
当前,Javascript只是将它们打印在控制台中,我当时正在考虑打印到文本文件,然后让python读取它,但这似乎是一个非常缓慢的过程,充满了潜在的问题。
有更好的方法将数据从JavaScript扩展程序生成的Chrome浏览器传输到Python脚本吗?
编辑:这与How to send data from JavaScript to Python不同,因为它专注于Web开发,这两个脚本都在我的本地计算机上运行。
答案 0 :(得分:0)
我不是Python开发人员,但我可以帮助您了解如何使其正常工作。
理论上,您可以向本地(或远程)Python服务器发出POST HTTP请求,该服务器每隔X秒获取一次鼠标数据。
有关如何使用JS进行客户端处理的示例(因为我不知道如何使用Python进行服务器处理):
let pageCoords = [];
let isNewDataCaptured = false;
// make a request every 1s
setInterval(() => {
// checks if the browser captured new mouse data
if (isNewDataCaptured) {
// create a new vanilla XHR request but can be simplified
// with the Axios package.
const XHR = new XMLHttpRequest();
// listener for the request completion
// resets everything after the data was sent to the Python server
XHR.addEventListener( 'load', () => {
isNewDataCaptured = false;
pageCoords = []
});
// the server URL and port is an example,
// you can replace them with whatever suits you the most
XHR.open('POST', 'http://localhost:3000')
XHR.send(JSON.stringify(pageCoords))
}
}, 1000)
document.onmousemove = (e) => {
isNewDataCaptured = true;
pageCoords.push({
x: e.pageX,
y: e.pageY
})
};
您现在所要做的就是找到一种方法,在Python服务器上获取此数据,并通过Python将它们保存为数组或任何您想对其进行处理的方式。 :D