【发布时间】:2018-08-23 09:04:50
【问题描述】:
我已经编写了一个简短的扩展程序,可以在 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 开发,这里两个脚本都在我的本地机器上运行。
【问题讨论】:
-
您会遇到麻烦,因为将客户端数据发送到服务器不是即时操作。并且看到您的目标是在每次鼠标移动时都发送此信息,您希望每分每秒都发出两位数的请求。
mousemove的触发速度比 Teddy Flood 快。通过鼠标交互和笛卡尔坐标平面操作东西是客户端的工作,这是有原因的。我建议只在鼠标移动结束时这样做。 -
我不知道 chrome 扩展的细节,但是,为了能够在 python(和任何其他语言)中“监听”来自“某处”的数据,你基本上需要一个网络侦听连接并将数据传递给 python 代码的服务器。作为一个简单的开始,在 Python 中,我推荐烧瓶框架 (flask.pocoo.org)。您似乎在该领域没有太多经验,但基本上,您必须: 1) 让您的 chrome 扩展程序与您的 Web 服务器通信; 2)让你在服务器上的python代码对数据做一些事情,并可选择返回一个响应
-
另外我建议不要在每次鼠标运动时都发送数据,而是将坐标添加到 json 中,然后每 x 次或 x 次运动发送一次。
-
因为两者都在我的本地机器上运行,所以不能直接发送信息吗?似乎需要很长时间才能首先将其发送到服务器,然后让 python 抓取它
标签: javascript python google-chrome