从.exe文件运行蜘蛛

时间:2017-07-31 02:11:37

标签: python scrapy exe py2exe

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

所以,如果我问一个已经在某处已经回答的问题,我很抱歉:在编写我的蜘蛛之后,是否有可能从exe文件启动它而不是从scrapy crawl xxx启动它?只需单击.exe文件,计算机就会在我抓取的网站上搜索我想要的项目,并会给我一个.csv文件或.json文件。我看到py2exe,但它似乎是我蜘蛛的输出。我不明白。

我希望我已经足够清楚了(在我的脑海里,法语还不清楚,用英语翻译真的很难。)

非常感谢你的帮助!!

3 个答案:

答案 0 :(得分:2)

要运行python脚本,您需要在计算机上提供python解释器。

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

I

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

II

如果您正在与非技术用户打交道,那么您不希望他们要求他们使用命令行或必须安装所有依赖项。

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

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

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

你必须在 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