目的
写一个真正意义上一个爬虫,并将他爬取到的数据分别保存到txt、json、已经存在的mysql数据库中。
PS注意:很多人学Python过程中会遇到各种烦恼问题,没有人解答容易放弃。为此小编建了个Python全栈免费答疑.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,不懂的问题有老司机解决里面还有最新Python实战教程免非下,,一起相互监督共同进步!
目标分析:
数据的筛选:
我们使用chrome开发者工具,模拟鼠标定位到相对应位置:
可以看到我们需要的数据,全都包裹在
里我们用bs4、xpath、css之类的选择器定位到这里,再筛选数据就行。本着学习新知识的原则,文中的代码将会使用xpath定位。这里我们可以这样:
Scrapy 框架的实施:
创建scrapy项目和爬虫:
这样我们就已经将准备工作做完了。看一下当前的目录:
编写items.py:
这次我们来先编写items,十分的简单,只需要将希望获取的字段名填写进去:
编写Spider:
这个部分使我们整个爬虫的核心!!
主要目的是:
将Downloader发给我们的Response里筛选数据,并返回给PIPELINE处理
下面我们来看一下代码:
编写PIPELINE:
我们知道,pipelines.py是用来处理收尾爬虫抓到的数据的,一般情况下,我们会将数据存到本地:
文本形式: 最基本的存储方式
json格式 :方便调用
数据库: 数据量比较大时选择的存储方式
TXT(文本)格式:
json格式数据:
我们想要输出json格式的数据,最方便的是在PIPELINE里自定义一个class:
数据库格式(mysql):
Python对市面上各种各样的数据库的操作都有良好的支持,但是现在一般比较常用的免费数据库mysql。
在本地安装mysql:
linux和mac都有很强大的包管理软件,如apt,brew等等
window 可以直接去官网下载安装包。
由于我是Mac,所以我是说Mac的安装方式了。
在安装的过程中,他会要求你填写root用户的密码,
这里的root并不是系统层面上的超级用户,是mysql数据库的超级用户。安装完成后mysql服务是默认启动的,如果重启了电脑,需要这样启动(mac):
登录mysql并创建scrapy用的数据库:
来看一下weather表长啥样:
安装Python的mysql模块:
最后我们编辑与一下代码:
编写Settings.py
我们需要在Settings.py将我们写好的PIPELINE添加进去,scrapy才能够跑起来
这里只需要增加一个dict格式的ITEM_PIPELINES,数字value可以自定义,数字越小的优先处理
让项目跑起来:
结果展示:
文本格式:
json格式:
数据库格式:
这次的例子就到这里了,主要介绍如何通过自定义PIPELINE来将爬取的数据以不同的方式保存。注意:很多人学Python过程中会遇到各种烦恼问题,没有人解答容易放弃。为此小编建了个Python全栈免费答疑.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,不懂的问题有老司机解决里面还有最新Python实战教程免非下,,一起相互监督共同进步!
本文的文字及图片来源于网络加上自己的想法,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
内容来源于网络如有侵权请私信删除