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



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

然后,您可以使用waitcommunicatepoll等检查该过程。请参阅文档以了解您可能想要执行的操作。

最新更新