用Python与JavaScript通信?

0 投票
3 回答
743 浏览
提问于 2025-04-18 01:56

有没有办法让一个正在运行的Python脚本向一个正在运行JavaScript的网页发送数据包呢?

我想要的具体用法是,网页可以通过JavaScript告诉Python脚本当前网页的状态信息,然后Python脚本解析这些数据,再把数据发送回网页,最后JavaScript根据这些数据决定执行哪个功能。

这是为了一个视频游戏的机器人(合法的),所以这个过程需要实时进行。我对Python和网络请求比较熟悉,但刚开始接触JavaScript,希望这个解决方案在JavaScript方面不会太复杂。

补充:我在想的一种方法是让JavaScript写入一个文件,然后Python脚本也可以读取和写入这个文件,但我快速搜索了一下,发现JavaScript在文件输入输出方面的功能非常有限。有没有其他方法可以实现这个呢?

3 个回答

0

听起来这个Javascript只会发送信息,而不会接收信息。如果是这样的话,那你运气不错。我猜你是在同一台机器上同时运行Javascript和Python。

在你使用浏览器的机器上运行一个Python网页服务器。这里有个简单的例子:

http://webpy.org/install

当你在浏览器中访问 http://127.0.0.1:8080/ 时,如果看到消息 Hello World!,那么你就可以开始往你的网站添加更多的地址,比如 http://127.0.0.1:8080/report_datahttp://127.0.0.1:8080/report_event 等等。

然后你的Javascript可以使用 jQuery.ajaxXMLHTTPRequest 来向 http://127.0.0.1:8080/report_data 这个地址发送请求,并把信息作为 GET 参数传递过去。

0

你可以使用 XMLHttpRequest 这个接口来发送 HTTP 请求,Jquery 通过 $.ajax 和 $.get 这两个方法把它变得更简单了。你也可以使用更底层的 Websockets 网络接口:

https://developer.mozilla.org/en-US/docs/WebSockets

需要注意的是,XMLHttpRequest 这个接口只允许向同一个服务器发送请求,或者请求的响应中要包含合适的 Access-Control-Allow-Origin 头信息。

0

出于安全考虑,浏览器中的JavaScript通常只能和它加载的那个网站进行交流。

基于这个原因,AJAX调用就是一个很常见的操作。

撰写回答