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下如何让web元素的生成更简单的分析
Jul 17 Python
Python随机数random模块使用指南
Sep 09 Python
对PyTorch torch.stack的实例讲解
Jul 30 Python
python获取微信小程序手机号并绑定遇到的坑
Nov 19 Python
Python正则表达式实现简易计算器功能示例
May 07 Python
Pandas之Fillna填充缺失数据的方法
Jun 25 Python
使用python写一个自动浏览文章的脚本实例
Dec 05 Python
python爬虫开发之使用python爬虫库requests,urllib与今日头条搜索功能爬取搜索内容实例
Mar 10 Python
Python日志处理模块logging用法解析
May 19 Python
Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题)
Jul 07 Python
Python如何读取、写入JSON数据
Jul 28 Python
python爬虫使用正则爬取网站的实现
Aug 03 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
可兼容php5与php7的cURL文件上传功能实例分析
2018/05/11 PHP
Referer原理与图片防盗链实现方法详解
2019/07/03 PHP
javascript拖拽上传类库DropzoneJS使用方法
2013/12/05 Javascript
JavaScript利用正则表达式去除日期中的“-”
2014/07/01 Javascript
举例讲解JavaScript中将数组元素转换为字符串的方法
2015/10/25 Javascript
JS弹出对话框实现方法(三种方式)
2015/12/18 Javascript
JS 实现 ajax 异步浏览器兼容问题
2017/01/21 Javascript
es6的数字处理的方法(5个)
2017/03/16 Javascript
jQuery自定义元素右键点击事件(实现案例)
2017/04/28 jQuery
关于vue-router的beforeEach无限循环的问题解决
2017/09/09 Javascript
Vue中使用webpack别名的方法实例详解
2018/06/19 Javascript
Vue常用指令详解分析
2018/08/19 Javascript
JavaScript如何把两个数组对象合并过程解析
2019/10/10 Javascript
vue相同路由跳转强制刷新该路由组件操作
2020/08/05 Javascript
[38:21]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS Newbee
2018/03/31 DOTA
Python实现windows下模拟按键和鼠标点击的方法
2015/03/13 Python
Python正规则表达式学习指南
2016/08/02 Python
json跨域调用python的方法详解
2017/01/11 Python
python jieba分词并统计词频后输出结果到Excel和txt文档方法
2018/02/11 Python
python实现判断一个字符串是否是合法IP地址的示例
2018/06/04 Python
详解Python数据可视化编程 - 词云生成并保存(jieba+WordCloud)
2019/03/26 Python
使用Python实现企业微信的自动打卡功能
2019/04/30 Python
Python3批量移动指定文件到指定文件夹方法示例
2019/09/02 Python
CSS3 animation实现简易幻灯片轮播特效
2016/09/27 HTML / CSS
如何用css3实现switch组件开关的方法
2018/02/09 HTML / CSS
HTML5 常见面试题之PC端和移动端区别介绍
2018/01/22 HTML / CSS
卡塔尔航空官方网站:Qatar Airways
2017/02/08 全球购物
英国当代时尚和街头服饰店:18montrose
2018/12/15 全球购物
有影响力的人、名人和艺术家的官方商品:Represent
2019/11/26 全球购物
应届毕业生的个人自我鉴定
2013/10/24 职场文书
北京离婚协议书范文2014
2014/09/29 职场文书
2014年节能工作总结
2014/12/18 职场文书
工作服管理制度范本
2015/08/06 职场文书
学生会工作感言
2015/08/07 职场文书
MySQL REVOKE实现删除用户权限
2021/06/18 MySQL
使用 Apache Dubbo 实现远程通信(微服务架构)
2022/02/12 Servers