从另一个python脚本运行Scrapy蜘蛛

时间:2018-01-20 15:04:53

标签: python scrapy scrapy-spider

我正在尝试从我构建的简单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()

此时有一种简单的方法来调用蜘蛛吗?

1 个答案:

答案 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) 

然后,您可以使用waitcommunicatepoll等检查流程。请参阅docs,了解您可能希望执行的操作。