我有一个python爬虫,每隔几分钟就抓取几个网页。我现在正在尝试实现一个可以通过web访问的用户界面,并显示爬虫获得的数据。我将使用php/html作为接口。无论如何,用户界面需要某种类型的按钮来触发爬虫程序立即抓取特定的网站(而不是等待下一次抓取迭代)。
现在,有没有一种方法可以将数据从php脚本发送到正在运行的python脚本?我在考虑标准输入/输出,但找不到一种方法可以做到这一点(从一个进程写入另一个进程stdin)。然后我在考虑使用一个共享文件,php在其中写入数据,python从中读取数据。但是,我需要一些方法来让python脚本知道,新数据已经写入文件,以及让php脚本知道爬虫何时完成了它的任务。另一种方法是套接字,但我认为,这可能有点过了,而且不是尽可能简单。
你有什么建议让一切都尽可能简单,但仍然允许我从php脚本向正在运行的python进程发送数据吗?
提前感谢您的任何想法!
编辑:我应该注意,爬虫将获得的数据保存到一个sql数据库中,php可以访问该数据库。因此,将数据从python爬虫传递到php脚本是没有问题的。这是另一种方式。
发布于 2011-03-31 20:44:56
消除使用不同语言的依赖性的最好方法是使用消息队列库(如rabbitMQ或ActiveMQ)
通过使用它,你可以直接将消息从php发送到python,反之亦然。
如果你想要一个简单的方法,你需要修改你的python脚本(更多关于fabrik所说的内容),以轮询数据库(或文件)中任何新的jobs...and进程,如果它找到的话……
发布于 2011-03-31 20:15:29
因为我不太了解python是如何工作的,所以就把它当作一个疯狂的想法吧。
processed=false标志希望它能在某种程度上帮助你。
发布于 2011-03-31 22:03:01
我有使用标准XML-RPC Python库提供简单RPC接口的丰富经验。您所需要做的就是在Python脚本中启动另一个线程,它将处理来自PHP代码的XML-RPC请求。PHP对http://phpxmlrpc.sourceforge.net/有非常成熟的XML-RPC支持。
https://stackoverflow.com/questions/5499558
复制相似问题