Pyinstaller打包Scrapy项目的实现步骤


Posted in Python onSeptember 22, 2020

1.安装pyinstaller https://3water.com/article/177160.htm

2.安装pywin32 https://3water.com/article/187388.htm

3.安装其他模块

注意点:

scrapy用pyinstaller打包不能用

cmdline.execute('scrapy crawl douban -o test.csv --nolog'.split())

我用的是CrawlerProcess方式来输出

举个栗子:

1、在scrapy项目根目录下建一个crawl.py(你可以自己定义)如下图

Pyinstaller打包Scrapy项目的实现步骤

cralw.py代码如下

# -*- coding: utf-8 -*-
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
from douban.spiders.douban_spider import Douban_spider

#打包需要的import
import urllib.robotparser
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.chunked
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

from douban.pipelines import DoubanPipeline
from douban.items import DoubanItem
import douban.settings

if __name__ == '__main__':
  setting = get_project_settings()
  process = CrawlerProcess(settings=setting)
  process.crawl(Douban_spider)
  process.start()

2、在crawl.py目录下pyinstaller crawl.py 生成dist,build(可删)和crawl.spec(可删)。

3、在crawl.exe目录下创建文件夹scrapy,然后到自己安装的scrapy文件夹中把VERSION和mime.types两个文件复制到刚才创建的scrapy文件夹中。

4、发布程序 包括douban/dist 和douban/scrapy.cfg 

如果没有scrapy.cfg无法读取settings.py和pipelines.py的配置

Pyinstaller打包Scrapy项目的实现步骤

5、在另外一台机器上测试成功

6、对于自定义的pipelines和settings,貌似用pyinstaller打包后的 exe无法读取到settings和pipelines,哪位高手看看能解决这个问题???

到此这篇关于Pyinstaller打包Scrapy项目的实现步骤的文章就介绍到这了,更多相关Pyinstaller打包Scrapy内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python算法学习之基数排序实例
Dec 18 Python
初步探究Python程序的执行原理
Apr 11 Python
Python实现从URL地址提取文件名的方法
May 15 Python
python实现在字符串中查找子字符串的方法
Jul 11 Python
python 计算文件的md5值实例
Jan 13 Python
Python操作Excel之xlsx文件
Mar 24 Python
Python迭代器和生成器定义与用法示例
Feb 10 Python
Python引用计数操作示例
Aug 23 Python
python用opencv批量截取图像指定区域的方法
Jan 24 Python
使用coverage统计python web项目代码覆盖率的方法详解
Aug 05 Python
pytorch 可视化feature map的示例代码
Aug 20 Python
详解Pycharm第三方库的安装及使用方法
Dec 29 Python
Python使用pickle进行序列化和反序列化的示例代码
Sep 22 #Python
Python如何获取文件路径/目录
Sep 22 #Python
JupyterNotebook 输出窗口的显示效果调整实现
Sep 22 #Python
python 实现压缩和解压缩的示例
Sep 22 #Python
python 无损批量压缩图片(支持保留图片信息)的示例
Sep 22 #Python
Pytho爬虫中Requests设置请求头Headers的方法
Sep 22 #Python
python 线程的五个状态
Sep 22 #Python
You might like
PHP 常见郁闷问题答解
2006/11/25 PHP
php中static 静态变量和普通变量的区别
2016/12/01 PHP
PHP实现微信红包金额拆分试玩的算法示例
2018/04/07 PHP
Prototype源码浅析 Enumerable部分(二)
2012/01/18 Javascript
禁止拷贝网页内容的js代码
2014/01/22 Javascript
javascript不同类型数据之间的运算的转换方法
2014/02/13 Javascript
javascript实现验证身份证号的有效性并提示
2015/04/30 Javascript
浅谈JavaScript异常处理语句
2015/06/26 Javascript
jquery+php实现滚动的数字特效
2015/11/29 Javascript
jquery实现文本框textarea自适应高度
2016/03/09 Javascript
Javascript 实现简单计算器实例代码
2016/10/23 Javascript
Vue 固定头 固定列 点击表头可排序的表格组件
2016/11/25 Javascript
原生js实现省市区三级联动代码分享
2018/02/12 Javascript
JavaScript折半查找(二分查找)算法原理与实现方法示例
2018/08/06 Javascript
微信小程序实现左滑修改、删除功能
2020/10/19 Javascript
手挽手带你学React之React-router4.x的使用
2019/02/14 Javascript
微信小程序分包加载代码实现方法详解
2019/09/23 Javascript
在nuxt中使用路由重定向的实例
2020/11/06 Javascript
Python时间模块datetime、time、calendar的使用方法
2016/01/13 Python
基于Python对象引用、可变性和垃圾回收详解
2017/08/21 Python
Python微信公众号开发平台
2018/01/25 Python
Python在for循环中更改list值的方法【推荐】
2018/08/17 Python
Django中数据库的数据关系:一对一,一对多,多对多
2018/10/21 Python
python读取各种文件数据方法解析
2018/12/29 Python
对Python 字典元素进行删除的方法
2020/07/31 Python
国际象棋商店:The Chess Store
2018/07/09 全球购物
国外的一些J2EE面试题一
2012/10/13 面试题
实习心得体会
2014/01/02 职场文书
市场营销职业生涯规划书范文
2014/01/12 职场文书
幼儿园教师节活动总结
2015/03/23 职场文书
2015年学习部工作总结范文
2015/03/31 职场文书
2017春节晚会开幕词
2016/03/03 职场文书
导游词之河北野三坡
2019/12/11 职场文书
JS 基本概念详细介绍
2021/10/16 Javascript
Qt自定义Plot实现曲线绘制的详细过程
2021/11/02 Python
Mysql中mvcc各场景理解应用
2022/08/05 MySQL