学习Python一个星期用Scrapy爬取天气预报实践一番

目的

写一个真正意义上一个爬虫,并将他爬取到的数据分别保存到txt、json、已经存在的mysql数据库中。

目标分析:

数据的筛选:

我们使用chrome开发者工具,模拟鼠标定位到相对应位置:

可以看到我们需要的数据,全都包裹在

这样我们就已经将准备工作做完了。

看一下当前的目录:

编写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的安装方式了。

来看一下weather表长啥样:

最后我们编辑与一下代码:

编写Settings.py

我们需要在Settings.py将我们写好的PIPELINE添加进去,

scrapy才能够跑起来

这里只需要增加一个dict格式的ITEM_PIPELINES,

数字value可以自定义,数字越小的优先处理

让项目跑起来:

结果展示:

文本格式:

json格式:

数据库格式:

这次的例子就到这里了,主要介绍如何通过自定义PIPELINE来将爬取的数据以不同的方式保存。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏web前端教室

先行者计划--1107微课 《什么是Vuex?》| 文字简版

vuex是什么东西? 官网对Vuex的定义,"Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。" 恩,从这句话可以看出,它应该是一种编写js的...

2389
来自专栏非著名程序员

Android Studio详细安装流程和配置、主题

? 原文作者:欧神. 杨 / OCN Yang 原文地址:http://ocnyang.com/2016/09/13/AndroidStudioSet/ 特别...

2306
来自专栏FreeBuf

JIS-CTF靶机+Kioptrix靶机渗透

最近一直在down各种CTF靶机玩,本次分享的2个靶机因较基础,故合并成一篇文章发表,本文章仅为初学者练手学习使用,大神们勿喷,感谢各位大佬!

1324
来自专栏猿人谷

使用bash编写Linux shell脚本--调试和版本控制

当我还在布鲁克大学上学的时候, Macquarium 实验室中充满了苹果公司的 Macintosh Plus 电脑。一天,我在为第三年的操作系统课程准备一个程序...

41310
来自专栏蓝天

三种web性能压力测试工具http_load webbench ab小结

题记:压力和性能测试工具很多,下文讨论的是我觉得比较容易上手,用的比较多的三种 http_load 下载地址:http://www.acme.com/sof...

1301
来自专栏Web项目聚集地

Javascript中的异步

732
来自专栏LinXunFeng的专栏

iOS - 给高仿微信添加直播聊天功能

1973
来自专栏Web 开发

NodeJS那些事

下半年做了挺多活动型需求,因为我们业务人力有限,我在业务的策略是不依赖NodeJS。

1640
来自专栏数据小魔方

R语言爬虫实战——知乎live课程数据爬取实战

本文是一篇R语言爬虫实战练习篇,同样使用httr包来完成,结合cookies登录、表单提交、json数据包来完成整个数据爬取过程,无需书写复杂的xpath、cs...

4306
来自专栏张戈的专栏

解决IE响应式的解决方案css3-mediaqueries.js不生效问题

前阵子解决了博客在低版本 IE 下会假死的问题,发现居然是因为我自定义 CSS 的闭合误用了中文大括号导致的! 解决这个问题之后,又发现了另外一个坑:发现博客在...

3989

扫码关注云+社区