如何使用py2exe将我的scrapy蜘蛛构建到exe文件?

时间:2013-10-18 02:02:55

标签: python exe scrapy py2exe

我使用scrapy创建一个项目并在“spiders”文件夹中添加我自己的蜘蛛,比如说“spider_us.py”,我想构建一个exe文件,可以在其他计算机上执行而无需安装scrapy。 / p>

当我按照py2exe的说明操作时,我在同一文件夹中创建了一个新文件“Setup.py”,其中包含以下内容:

from distutils.core import setup
import py2exe

setup(console = ["spider_us.py"])

然而,它不起作用,因为当我运行我的蜘蛛时,我使用命令“scrapy crawl spider_us”而不是直接在“spiders”文件夹中运行“spider_us.py”文件。

如何构建整个蜘蛛程序(当我使用“scrapy startproject XXX”时通过scrapy自动创建)到exe文件,而不仅仅是蜘蛛文件(在我的情况下是“spider_us.py”)蜘蛛“子文件夹。

任何人都会提供一些建议或帮助,欢迎任何评论。非常感谢。

1 个答案:

答案 0 :(得分:2)

尝试通过Python脚本(而不是命令scrapy crawl <spider_name>)运行蜘蛛。你需要编写一些代码,例如:

from twisted.internet import reactor
from scrapy.crawler import Crawler
from scrapy import log, signals
from testspiders.spiders.followall import FollowAllSpider
from scrapy.utils.project import get_project_settings

spider = FollowAllSpider(domain='scrapinghub.com')
settings = get_project_settings()
crawler = Crawler(settings)
crawler.signals.connect(reactor.stop, signal=signals.spider_closed)
crawler.configure()
crawler.crawl(spider)
crawler.start()
log.start()
reactor.run() # the script will block here until the spider_closed signal was sent

有关详细信息,请参阅the documentations on "Run Scrapy from a script"