scrapy 项目打包exe文件 【自己操作用,方便记录就传上来了】
scrapy 项目打包发布
- 先安装pyinstaller 【 pip install pyinstaller 】
- 创建一个start_spider.py脚本 【与scrapy.cfg文件同级】
- 将官方的包
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
import scrapy
import scrapy.spiderloader
import scrapy.statscollectors
import scrapy.logformatter
import scrapy.dupefilters
import scrapy.squeues
import scrapy.extensions.spiderstate
import scrapy.extensions.corestats
import scrapy.extensions.telnet
import scrapy.extensions.logstats
import scrapy.extensions.memusage
import scrapy.extensions.memdebug
import scrapy.extensions.feedexport
import scrapy.extensions.closespider
import scrapy.extensions.debug
import scrapy.extensions.httpcache
import scrapy.extensions.statsmailer
import scrapy.extensions.throttle
import scrapy.core.scheduler
import scrapy.core.engine
import scrapy.core.scraper
import scrapy.core.spidermw
import scrapy.core.downloader
import scrapy.downloadermiddlewares.stats
import scrapy.downloadermiddlewares.httpcache
import scrapy.downloadermiddlewares.cookies
import scrapy.downloadermiddlewares.useragent
import scrapy.downloadermiddlewares.httpproxy
import scrapy.downloadermiddlewares.ajaxcrawl
import scrapy.downloadermiddlewares.decompression
import scrapy.downloadermiddlewares.defaultheaders
import scrapy.downloadermiddlewares.downloadtimeout
import scrapy.downloadermiddlewares.httpauth
import scrapy.downloadermiddlewares.httpcompression
import scrapy.downloadermiddlewares.redirect
import scrapy.downloadermiddlewares.retry
import scrapy.downloadermiddlewares.robotstxt
import scrapy.spidermiddlewares.depth
import scrapy.spidermiddlewares.httperror
import scrapy.spidermiddlewares.offsite
import scrapy.spidermiddlewares.referer
import scrapy.spidermiddlewares.urllength
import scrapy.pipelines
import scrapy.core.downloader.handlers.http
import scrapy.core.downloader.contextfactory
, 和自己引用的包全部在这里引用,
# 在项目中自己导入的类库(这个是我的项目用到的)
import os, re
from scrapy import signals
from fake_useragent import UserAgent
import logging
import pymongo
from scrapy.exceptions import DropItem
import requests
然后启动
if __name__ == "__main__":
process = CrawlerProcess(get_project_settings())
process.crawl('自己的spider')
process.start()
-
注意,这里打包的话,不能引用自己创建的,也就是项目中的。所以涉及到数据库的要么在pipline里写好才行
-
在该项目目录下 , 执行 pyinstaller -F start_spider.py 【会生成一堆文件,主要是dist文件夹】
-
在dist文件夹下找到.exe文件,第一次执行时,不建议双击,使用命令行执行 .\start_spider.exe 可以观察到出错的情况
-
如果放到服务器的话,记得要连同源码一并放过去,否则无法找到项目路径.