运行 来自 .exe 文件的蜘蛛

Run a spider from an .exe file

我不知道是否已经有关于同一主题的问题。我的英语不够好,无法理解我在 whosebug.com 上看到的关于网页抓取和 运行 来自 exe 文件的蜘蛛的所有主题。

所以,如果我问的问题已经在某处得到回答,我很抱歉:在编写我的蜘蛛程序之后,是否可以从 exe 文件启动它而不是从 scrapy crawl xxx ?只需点击.exe文件,电脑就会在我爬的网站上搜索我要的项目,并给我一个.csv文件或.json文件。我看到 py2exe 但它似乎是为了我的蜘蛛的输出。没看懂。

我希望我说得够清楚了(我脑子里连法文都不清楚,而且很难翻译成英文)。

非常感谢您的帮助!!

要运行一个python脚本,你需要在机器上有一个python解释器。

因此,如果您想分发您的 python 脚本(您的蜘蛛程序),您需要确保您的用户设置了正确的 python 环境。

当你与技术人员打交道时,这通常不是问题,只需告诉他们他们需要 install python 3.5(或你正在使用的任何东西)并使用 pip 获取所需的模块。他们甚至可能自己想出来。

如果您要与非技术用户打交道,您不希望通过要求他们使用命令行或必须安装所有依赖项来让他们生活艰难。

相反,您可以为他们提供 独立 包,其中包括:your scriptpython interpreter 和必需的 additional modules

有多种工具可以为您创建这些包:

另请参阅在 Whosebug 上提出的这些问题:

  • How can I create a directly-executable cross-platform GUI app using Python?
  • How can I make an EXE file from a Python program?

我在这里找到了问题的答案:How do I package a Scrapy script into a standalone application?

感谢@juwi提供的帮助!!我认为这对我来说更简单...

您必须在 if __name__=='__main__': 下制作 CrawlerProcess 的 cod 以避免 运行 两次和错误

这里有另一种可能性 运行 你的蜘蛛作为一个独立的脚本或可执行文件

    import scrapy
    from scrapy.crawler import CrawlerProcess
    
    class MySpider(scrapy.Spider):
        # Your spider definition
    if __name__=='__main__':
        process = CrawlerProcess({
        'USER_AGENT': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)'
          })
    
        process.crawl(MySpider)
        process.start() # the script will block here until the crawling is finished

您可以在此处找到更多信息:https://doc.scrapy.org/en/1.0/topics/practices.html