【发布时间】:2016-02-15 11:14:02
【问题描述】:
我在 Python 中有一个正在运行的循环脚本,我想与 HTML 页面进行交互。例如:
(HTML)点击按钮 -> 魔法 -> (Python) 在 脚本.py
This response 不适合这个。
【问题讨论】:
-
我只看到陈述,这里有什么问题?
我在 Python 中有一个正在运行的循环脚本,我想与 HTML 页面进行交互。例如:
(HTML)点击按钮 -> 魔法 -> (Python) 在 脚本.py
This response 不适合这个。
【问题讨论】:
您可能可以使用 Selenium python 绑定来使用您的 python 脚本与网页交互。
例子:
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()
【讨论】:
我在 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);
【讨论】: