python scrapy 管道学习,并拿在行练手爬虫项目
本篇博客的重点为 scrapy
管道 pipelines
的应用,学习时请重点关注。
爬取目标站点分析
本次采集的目标站点为:https://www.zaih.com/falcon/mentors,目标数据为在行高手数据。
本次数据保存到 MySQL 数据库中,基于目标数据,设计表结构如下所示。
对比表结构,可以直接将 scrapy
中的 items.py
文件编写完毕。
编码时间
项目的创建过程参考上一案例即可,本文直接从采集文件开发进行编写,该文件为 zh.py
。本次目标数据分页地址需要手动拼接,所以提前声明一个实例变量(字段),该字段为 page
,每次响应之后,判断数据是否为空,如果不为空,则执行 +1
操作。
请求地址模板如下:
当页码超过最大页数时,返回如下页面状态,所以数据为空状态,只需要判断 是否存在 class=empty
的 section
即可。
解析数据与数据清晰直接参考下述代码即可。
开启 settings.py 文件中的 ITEM_PIPELINES,注意类名有修改
修改 pipelines.py 文件,使其能将数据保存到 MySQL 数据库中在下述代码中,首先需要了解类方法 from_crawler
,该方法是 __init__
的一个代理,如果其存在,类被初始化时会被调用,并得到全局的 crawler
,然后通过 crawler
就可以获取 settings.py
中的各个配置项。
除此之外,还存在一个 from_settings
方法,一般在官方插件中也有应用,示例如下所示。
在编写下述代码前,需要提前在 settings.py
中写好配置项。settings.py 文件代码
pipelines.py 文件代码
管道文件中三个重要函数,分别是 open_spider
,process_item
,close_spider
。
爬取结果展示
写在后面
今天是持续写作的第 <font color=red>246</font> / 365 天。期待 <font color=#04a9f4>关注</font>,<font color=#04a9f4>点赞</font>、<font color=#04a9f4>评论</font>、<font color=#04a9f4>收藏</font>。
版权声明: 本文为 InfoQ 作者【梦想橡皮擦】的原创文章。
原文链接:【http://xie.infoq.cn/article/a966407a23bb4ebbfd110f56e】。文章转载请联系作者。
评论