纯干货:手把手教你用Python做数据可视化(附代码)

Karen110
• 阅读 1363

前言

Hi,大家好,又见面了,我是Python进阶者,废话不多说,直接开始肝吧,奥里给!

爬虫管理效果图

纯干货:手把手教你用Python做数据可视化(附代码)

依赖包


文件:requirements.txt‍‍‍‍‍‍‍‍‍

文件的内容这里直接贴出来了:



appdirs==1.4.4
APScheduler==3.5.1
attrs==20.1.0
Automat==20.2.0
beautifulsoup4==4.9.1
certifi==2020.6.20
cffi==1.14.2
chardet==3.0.4
constantly==15.1.0
cryptography==3.0
cssselect==1.1.0
Django==1.11.29
django-apscheduler==0.3.0
django-cors-headers==3.2.0
djangorestframework==3.9.2
furl==2.1.0
gerapy==0.9.5
gevent==20.6.2
greenlet==0.4.16
hyperlink==20.0.1
idna==2.10
incremental==17.5.0
itemadapter==0.1.0
itemloaders==1.0.2
Jinja2==2.10.1
jmespath==0.10.0
lxml==4.5.2
MarkupSafe==1.1.1
orderedmultidict==1.0.1
parsel==1.6.0
Protego==0.1.16
pyasn1==0.4.8
pyasn1-modules==0.2.8
pycparser==2.20
PyDispatcher==2.0.5
pyee==7.0.2
PyHamcrest==2.0.2
pymongo==3.11.0
PyMySQL==0.10.0
pyOpenSSL==19.1.0
pyppeteer==0.2.2
pyquery==1.4.1
python-scrapyd-api==2.1.2
pytz==2020.1
pywin32==228
queuelib==1.5.0
redis==3.5.3
requests==2.24.0
Scrapy==1.8.0
scrapy-redis==0.6.8
scrapy-splash==0.7.2
scrapyd==1.2.1
scrapyd-client==1.1.0
service-identity==18.1.0
six==1.15.0
soupsieve==2.0.1
tqdm==4.48.2
Twisted==20.3.0
tzlocal==2.1
urllib3==1.25.10
w3lib==1.22.0
websocket==0.2.1
websockets==8.1
wincertstore==0.2
zope.event==4.4
zope.interface==5.1.0

项目文件

项目文件:qiushi.zip

实现功能:糗事百科段子爬虫,

这是Scrapy项目,依赖包如上

运行项目步骤

  • 在安装好依赖包并且解压项目文件,pip install -r requirements.txt

  • 执行命令scrapy crawl duanzi --nolog

配置Scrapyd

可以理解Scrapyd是一个管理我们写的Scrapy项目的,配置好这个之后,可以通过命令运行,暂停等操作控制爬虫

其他的就不说了,这个用的也不多,我们需要做的就是将它启动就可以了

启动Scrapyd服务

  1. 切换到qiushi爬虫项目目录下,Scrapy爬虫项目需要进入爬虫目录,才能执行命令

纯干货:手把手教你用Python做数据可视化(附代码)

  1. 执行命令scrapyd

纯干货:手把手教你用Python做数据可视化(附代码)

  1. 游览器输入http://127.0.0.1:6800/,出现以下图片代表正确

纯干货:手把手教你用Python做数据可视化(附代码)

打包Scrapy上传到Scrapyd

上述只是启动了Scrapyd,但是并没有将Scrapy项目部署到Scrapy上,需要配置以下Scrapyscrapy.cfg文件

纯干货:手把手教你用Python做数据可视化(附代码)

配置如下

纯干货:手把手教你用Python做数据可视化(附代码)

打包命令

scrapyd-deploy <部署名> -p <项目名>

本次示例命令

scrapyd-deploy qb -p qiushi

如图所示,出现以下图片表示成功

纯干货:手把手教你用Python做数据可视化(附代码)

注:过程可能会有问题,解决办法我放在后面了!!!

再次回到游览器,会多了一个项目qiushi,到此为止,Scrapyd已经配置完毕

纯干货:手把手教你用Python做数据可视化(附代码)

配置Gerapy


上述都配置完毕之后,就可以进行Gerapy配置了,其实Scrapyd的功能远不止上述那么少,但是是命令操作的,所以不友好,

Gerapy可视化的爬虫管理框架,使用时需要将Scrapyd启动,挂在后台,其实本质还是向Scrapyd服务发请求,只不过是可视化操作而已

基于 Scrapy、Scrapyd、Scrapyd-Client、Scrapy-Redis、Scrapyd-API、Scrapy-Splash、Jinjia2、Django、Vue.js 开发

配置步骤

GerapyScrapy是没有关系的,所以可以随便选一个文件夹,这里我创建了一个gerapyDemo文件夹

纯干货:手把手教你用Python做数据可视化(附代码)

  1. 执行命令初始化gerpay
gerapy init

纯干货:手把手教你用Python做数据可视化(附代码)

会生成一个gerapy文件夹

纯干货:手把手教你用Python做数据可视化(附代码)

  1. 进入生成的gerapy文件夹中

纯干货:手把手教你用Python做数据可视化(附代码)

  1. 执行命令,会生成一表

    gerapy migrate

    纯干货:手把手教你用Python做数据可视化(附代码)

  2. 启动gerapy服务,默认是8000端口,可以指定端口启动

    gerapy runserver  
    gerapy runserver 127.0.0.1:9000 本机 9000端口启动

纯干货:手把手教你用Python做数据可视化(附代码)

  1. 打开游览器,输入http://127.0.0.1:8000/,出现以下界面表示成功

    纯干货:手把手教你用Python做数据可视化(附代码)

当然,一般情况下,大概是这样的界面,我们需要生成账号密码

纯干货:手把手教你用Python做数据可视化(附代码)

停止服务,输入命令gerapy creatsuperuser,根据提示创建账号密码就使用账号登录了

纯干货:手把手教你用Python做数据可视化(附代码)

在Gerapy添加爬虫项目


上述都配置之后,我们就可以配置爬虫项目了,通过点点点的方式,就可以运行爬虫了

点击 主机管理-->创建,ip是Scrapyd服务的主机,端口是Scrapyd的端口,默认6800,填写后点击创建

纯干货:手把手教你用Python做数据可视化(附代码)

然后在主机列表,调度中,就可以运行爬虫了

纯干货:手把手教你用Python做数据可视化(附代码)

运行爬虫

纯干货:手把手教你用Python做数据可视化(附代码)

获取结果,结果已经写入本地

纯干货:手把手教你用Python做数据可视化(附代码)

打包爬虫上传


上述过程,我们只是能玩爬虫了,但是并不彻底,按照道理来说,我们还差一个打包过程,只有打包爬虫了,才算是真正的结合在一起了

步骤

  1. 首先需要将爬虫项目拷贝到gerapy下面的projects文件夹下

纯干货:手把手教你用Python做数据可视化(附代码)

  1. 刷新页面,点击项目管理,可以看到可配置和打包都是x号状态

纯干货:手把手教你用Python做数据可视化(附代码)

点击部署,写好描述,点击打包

纯干货:手把手教你用Python做数据可视化(附代码)

再次回到主界面,可以发现打包已经是正确的了

纯干货:手把手教你用Python做数据可视化(附代码)

至此,基本整个流程结束。

解决scrapyd-deploy不是内部外部命令

通常情况下,在执行scrapyd-deploy时,会提示scrapyd-deploy不是内部或外部命令,嗯...这个是正常操作

解决步骤

  1. 找到Python解释器下面的Scripts,新建scrapy.batscrapyd-deploy.bat两个文件

纯干货:手把手教你用Python做数据可视化(附代码)

修改这两个文件,内容如下

scrapy.bat


@echo off
D:\programFiles\miniconda3\envs\hy_spider\python D:\programFiles\miniconda3\envs\hy_spider\Scripts\scrapy %*

纯干货:手把手教你用Python做数据可视化(附代码)

scrapyd-deploy.bat

@echo off
D:\programFiles\miniconda3\envs\hy_spider\python D:\programFiles\miniconda3\envs\hy_spider\Scripts\scrapyd-deploy %*

纯干货:手把手教你用Python做数据可视化(附代码)

注:红色方框表示是解释器的位置,上述内容是一行的,我粘贴过来怎么调都是两行...,一一对应好就好了。

Gerapy使用流程总结


1.gerapy init 初始化,会在文件夹下创建一个gerapy文件夹
2.cd gerapy
3.gerapy migrate
4.gerapy runserver 默认是127.0.0.1:8000
5.gerapy createsuperuser 创建账号密码,默认情况下都是没有的
6.游览器输入127.0.0.1:8000 登录账号密码,进入主页
7.各种操作,比如添加主机,打包项目,定时任务等

总结


上述以入门的方式解决了安排了以下如何通过Gerapy + Scrpyd + Scrapy可视化部署爬虫。

如果在操作过程中有任务问题,记得下面留言,我们看到会第一时间解决问题。

我是码农星期八,如果觉得还不错,记得动手点赞一下哈,感谢你的观看。

如果你觉得文章还可以,记得点赞留言支持我们哈。感谢你的阅读,有问题请记得在下方留言噢~

想学习更多关于Python的知识,可以参考学习网址:http://pdcfighting.com/,点击阅读原文,可以直达噢~

**-----**------**-----**---**** End **-----**--------**-----**-****

往期精彩文章推荐:

纯干货:手把手教你用Python做数据可视化(附代码)

欢迎各位大佬点击链接加入群聊【helloworld开发者社区】:https://jq.qq.com/?_wv=1027&k=mBlk6nzX进群交流IT技术热点。

本文转自 https://mp.weixin.qq.com/s/gGIyWK8OZ7VnQrBRPZSeiw,如有侵权,请联系删除。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''
Stella981 Stella981
3年前
Python之time模块的时间戳、时间字符串格式化与转换
Python处理时间和时间戳的内置模块就有time,和datetime两个,本文先说time模块。关于时间戳的几个概念时间戳,根据1970年1月1日00:00:00开始按秒计算的偏移量。时间元组(struct_time),包含9个元素。 time.struct_time(tm_y
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这