我正在尝试从我构建的简单 PyQt4 GUI 运行一个刮擦蜘蛛,用户必须填写他的电子邮件和密码才能运行蜘蛛,如果我像这样从命令提示符调用它,蜘蛛会很好地工作
scrapy crawl my_spider -a email -a password
因此,一旦用户填写了他的电子邮件和密码,我将它们保存在我的脚本中,并且在阅读了文档和我发现的一些谷歌示例后,我仍然无法弄清楚如何运行它
self.BumpPushButton.clicked.connect(self.BumpListings)
def BumpListings(self):
email = self.emailTextEdit.toPlainText()
password = self.passwordTextEdit.toPlainText()
bumpCycleInMinutes = self.MinutesTextEdit.toPlainText()
此时有没有简单的方法来呼叫蜘蛛?
此问题有两种方法。您可以通过导入蜘蛛直接调用蜘蛛,也可以使用 python 子进程。我推荐python子进程,因为你不想阻塞你的pyqt进程。
import subprocess
process = subprocess.Popen(['scrapy', 'crawl', 'my_spider',
'-a', email, '-a', password]
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
然后,您可以使用wait
、communicate
、poll
等检查该过程。请参阅文档以了解您可能想要执行的操作。