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脚本
Feb 10 Python
python正则表达式修复网站文章字体不统一的解决方法
Feb 21 Python
python实现定制交互式命令行的方法
Jul 03 Python
Python的Flask框架中web表单的教程
Apr 20 Python
Python3实现从指定路径查找文件的方法
May 22 Python
Python自定义主从分布式架构实例分析
Sep 19 Python
PyChar学习教程之自定义文件与代码模板详解
Jul 17 Python
python 函数传参之传值还是传引用的分析
Sep 07 Python
python 调用有道api接口的方法
Jan 03 Python
python里dict变成list实例方法
Jun 26 Python
Python中使用双下划线防止类属性被覆盖问题
Jun 27 Python
python元组和字典的内建函数实例详解
Oct 22 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 empty() 检查一个变量是否为空
2011/11/10 PHP
PHP使用HTML5 FormData对象提交表单操作示例
2019/07/02 PHP
asp.net和php的区别点总结
2019/10/10 PHP
JavaScript confirm选择判断
2008/10/18 Javascript
javascript 操作文件 实现方法小结
2009/07/02 Javascript
js parsefloat parseint 转换函数
2010/01/21 Javascript
借助javascript代码判断网页是静态还是伪静态
2014/05/05 Javascript
实现网页页面跳转的几种方法(meta标签、js实现、php实现)
2014/05/20 Javascript
nodejs实现遍历文件夹并统计文件大小
2015/05/28 NodeJs
JS组件Bootstrap实现弹出框效果代码
2016/04/26 Javascript
Node.js+Express配置入门教程
2016/05/19 Javascript
JS对大量数据进行多重过滤的方法
2016/11/04 Javascript
详解Angualr 组件间通信
2017/01/21 Javascript
loading动画特效小结
2017/01/22 Javascript
在js中做数字字符串补0(js补零)
2017/03/25 Javascript
浅谈Koa服务限流方法实践
2017/10/23 Javascript
详解Angular5 路由传参的3种方法
2018/04/28 Javascript
VUE 实现滚动监听 导航栏置顶的方法
2018/09/11 Javascript
2019 年编写现代 JavaScript 代码的5个小技巧(小结)
2019/01/15 Javascript
在vue中实现嵌套页面(iframe)
2020/07/30 Javascript
如何利用JS将手机号中间四位变成*号
2020/09/29 Javascript
[56:42]完美世界DOTA2联赛循环赛 Matador vs Forest 第二场 11.06
2020/11/06 DOTA
Python中列表(list)操作方法汇总
2014/08/18 Python
浅谈python socket函数中,send与sendall的区别与使用方法
2017/05/09 Python
python扫描proxy并获取可用代理ip的实例
2017/08/07 Python
python实现读Excel写入.txt的方法
2018/04/29 Python
Python实现多条件筛选目标数据功能【测试可用】
2018/06/13 Python
解决django前后端分离csrf验证的问题
2019/02/03 Python
python实现几种归一化方法(Normalization Method)
2019/07/31 Python
华为消费者德国官方网站:HUAWEI德国
2020/11/03 全球购物
小学生防溺水广播稿
2014/01/12 职场文书
幼儿园教师个人工作总结2015
2015/05/12 职场文书
go语言-在mac下brew升级golang
2021/04/25 Golang
一次MySQL启动导致的事故实战记录
2021/09/15 MySQL
HTML CSS 一个标签实现带动画的抖音LOGO
2022/04/26 HTML / CSS
docker 制作mysql镜像并自动安装
2022/05/20 Servers