首先安装pyinstaller
pip install pyinstaller
我们想要的效果: 点击EXE文件, 然后运行scrapy程序, 也就是运行EXE时候需要执行这条命令
scrapy crawl 爬虫名
第一种方式(似乎行不通, 但是容易想到)
-
scrapy提供了一个模块
cmdline
, 我们首先可以在scrapy
项目的scrapy.cfg
同级目录下, 创建一个crawl.py
文件, 里面编写爬虫命令from scrapy import cmdline cmdline.execute("scrapy crawl 名称".split())
-
然后使用
pyinstaller
进行打包pyinstaller crawl.py
-
点击运行EXE文件, 在dist/crawl, 出现删除, 应该是出现错误了, 我们可以把EXE文件拖入到
cmd
里面, 这样就可以查看错误, 反正出现了各种错误, 解决不了, 就放弃了这种方法.
第二种方式(推荐)
-
同样在
crawl.py
文件中编写代码, 只不过代码不同from scrapy.crawler import CrawlerProcess from scrapy.utils.project import get_project_settings process = CrawlerProcess(get_project_settings()) process.crawl('scientist') process.start()
-
然后使用
pyinstaller
进行打包pyinstaller crawl.py
-
运行EXE出现闪退, 应该是报错了, 直接拖入
cmd
, 发现报错xxx模块不存在, 你可以看一下dist/crawl里面模块是不是少了, 发现真的没有这个模块, 那我们可以去Python环境里面复制一个过来.
-
然后再次运行就可以了