我正在尝试从我构建的简单PyQt4 GUI运行scrapy蜘蛛,用户必须填写他的电子邮件和密码来运行蜘蛛,如果我从命令提示符调用它,蜘蛛效果很好
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()
此时有一种简单的方法来调用蜘蛛吗?
答案 0 :(得分:0)
这个问题有两种方法。您可以通过导入蜘蛛直接调用蜘蛛,也可以使用python subprocesses。我建议使用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
等检查流程。请参阅docs,了解您可能希望执行的操作。