【问题标题】:How to make simple interacting with running python script for web?如何与运行 web 的 python 脚本进行简单的交互?
【发布时间】:2016-02-15 11:14:02
【问题描述】:

我在 Python 中有一个正在运行的循环脚本,我想与 HTML 页面进行交互。例如:

(HTML)点击按钮 -> 魔法 -> (Python) 在 脚本.py

This response 不适合这个。

【问题讨论】:

  • 我只看到陈述,这里有什么问题?

标签: python html web


【解决方案1】:

您可能可以使用 Selenium python 绑定来使用您的 python 脚本与网页交互。

Selenium link

例子:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get("http://www.python.org")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.send_keys("pycon")
elem.send_keys(Keys.RETURN)
assert "No results found." not in driver.page_source
driver.close()

【讨论】:

    【解决方案2】:

    我在 python 中通过 PIPE 解决了这个问题。 Python 脚本逐行读取文件 p1.txt,server.js 发送文本。例如,这里 server.js 发送字符串 'COMMAND',我们得到 script.py 响应。

    脚本.py

    import os,sys
    fd = "./p1.txt"
    try:
        os.mkfifo(fd)
    except OSError:
        pass
    rp = os.open(fd, os.O_RDONLY)
    
    #Need to create new thread, for background reading file
    while True:
        response = os.read(rp, 54)
        if response == "COMMAND":
            #do
            print 'ICATCHYOU'
    

    server.js

    var fs = require('fs');
    var path = '/home/pi/develop/p1.txt';
    
    var streamOptions = { flags: 'w',
                          encoding: 'utf-8',
                          mode: 0666 };
    
    var afterOpen = function(err, fd) {
        var writeStream = fs.createWriteStream(path, streamOptions);   
        writeStream.write("COMMAND");
    };
    
    
    fs.open(path, 'w', afterOpen);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 2011-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多