由于一些需要,想要获取今天的天气数据,于是又捡起了Python写了个爬虫用来获取中国天气网上的气象数据。由于我需要的数据比较简单,因为我只需要北京地区当天的温度(最低温度和最高温度)和天气,因此代码部分比较简单,下面就来讲讲这个爬取的过程。

第一步 网页分析

要进行爬虫设计,首先得分析网页的请求过程。首先,打开中国天气网首页,在搜索框中搜索北京,查看北京地区的天气,如下图所示:

发现在今天的数据栏中并没有我要的最低温度和最高温度,于是又选择了“7天”链接,截图如下:

这时候我想要的数据(最低温度、最高温度)就有了,接下来就该分析网页的请求过程了。通过对比分析“今天”页面和“7天”页面发现,该网站的请求都是简单的GET的请求。
以请求“7天”页面为例,请求的URL如下:

URL=“http://www.weather.com.cn/weather/101010100.shtml”

其中,“weather”代表请求的是“7天”,如果是请求“今天”则是“weather1d“;后面的“101010100”则代表了北京地区的编号。

既然URL已经搞清楚了,那么就下来就要分析网页源码,找到数据在源码中呈现位置,经过一番寻找,已经定位数据在源码中的位置,其中天气数据和温度数据在两个p标签中,而最高温度数据在span标签中,最低温度在i标签中。

但是这边需要注意的一个问题是,到了晚上时间,这里会有一个变化,那就是没有了最高温度,在网页界面呈现的结果为:

在代码中的呈现结果即为少了一个span标签,只剩下包含最低温度数据的i标签。由于我在数据的应用场景中必须有最高温度,故为了避免读取不到最高温度,我采取的方法是直接利用第二天的最高温度来代替(虽然比较粗暴)。

到此,网页的分析工作就结束了,那么接下来的工作就是获取数据。

第二步 数据获取

鉴于Python语言的优雅,本次简易爬虫故选用Python+Beautiful Soup 4进行页面解析。Beauti Soup是一个可以从HTML或XML文件中提取数据的Python库,其强大的解析功能,能够方便快捷的解决很多问题。关于BeautiSoup的相关介绍,大家可以参考官方文档或是其他文件,这里就直接贴出我的代码.

from urllib.request import urlopen
from bs4 import BeautifulSoup
import reresp=urlopen('http://www.weather.com.cn/weather/101010100.shtml')
soup=BeautifulSoup(resp,'html.parser')
tagToday=soup.find('p',class_="tem")  #第一个包含class="tem"的p标签即为存放今天天气数据的标签
try:temperatureHigh=tagToday.span.string  #有时候这个最高温度是不显示的,此时利用第二天的最高温度代替。
except AttributeError as e:temperatureHigh=tagToday.find_next('p',class_="tem").span.string  #获取第二天的最高温度代替temperatureLow=tagToday.i.string  #获取最低温度
weather=soup.find('p',class_="wea").string #获取天气print('最低温度:' + temperatureLow)
print('最高温度:' + temperatureHigh)
print('天气:' + weather)

程序运行结果如下:

Python爬取中国天气网天气数据相关推荐

  1. Python爬取中国知网文献、参考文献、引证文献

    转载自博客园文章作为学习资料,代码及相关介绍非常详细.原文链接见Python爬取 中国知网文献.参考文献.引证文献

  2. 使用Python爬取51job招聘网的数据

    使用Python爬取51job招聘网的数据 进行网站分析 获取职位信息 存储信息 最终代码 进行网站分析 进入https://www.51job.com/这个网站 我在这就以python为例搜索职位跳 ...

  3. 使用Python爬取中国Mooc网讨论区内所有评论

    最近受朋友委托,写了一个爬取中国Mooc往讨论区所有评论的程序 ,他需要这些数据写论文. 如下: 他需要爬取这些板块里所有的评论. 俗话说的好 六月七月爬虫热 因为这段时间许多的大学生都毕业了 特此写 ...

  4. 【pyecharts数据可视化】python爬取去哪儿网景点数据,做交互式数据可视化

    写在前面 在网易云课堂看到城市数据团大鹏老师讲的<Python数据可视化利器:Pyecharts!>[传送门],于是把前一篇南京的景点数据做一个可视化. 1.还是去哪儿网景点爬取 具体可以 ...

  5. python爬取中国知网(中国优秀硕士学位论文数据库)

    笔者这几天受团队任务安排,需要写一份儿关于知网(中国优秀硕士学位论文数据库   入口:http://gb.oversea.cnki.net/kns55/brief/result.aspx?dbPref ...

  6. python爬取中国天气网天气图标

    python爬取中国天气网天气图标 准备工作 天气预报图例网址:http://www.weather.com.cn/static/html/legend.shtml 安装requests:pip in ...

  7. 使用Python爬取“最好大学网”软科中国最好大学排名2019并做可视化分析

    使用Python爬取"最好大学网"软科中国最好大学排名2019并做可视化分析 简介 开发环境 爬取数据 1.获取网站页面 2.解析网页内容 3.存储数据 可视化分析 基本设置 显示 ...

  8. python爬取链家网的房屋数据

    python爬取链家网的房屋数据 爬取内容 爬取源网站 爬取内容 爬取思路 爬取的数据 代码 获取房屋url 获取房屋具体信息 爬取内容 爬取源网站 北京二手房 https://bj.lianjia. ...

  9. python selenium 爬取去哪儿网的数据

    python selenium 爬取去哪儿网的数据 完整代码下载:https://github.com/tanjunchen/SpiderProject/tree/master/selenium+qu ...

  10. python 爬取链家数据_用python爬取链家网的二手房信息

    题外话:这几天用python做题,算是有头有尾地完成了.这两天会抽空把我的思路和方法,还有代码贴出来,供python的初学者参考.我python的实战经历不多,所以代码也是简单易懂的那种.当然过程中还 ...

最新文章

  1. sort,uniq,wc,history命令简介
  2. [转载]windows内存优化 没你想像那么美
  3. 28/100. Shortest Unsorted Continuous Subarray
  4. 道客巴巴vip账号共享2020_腾讯视频VIP怎么两个手机通用?
  5. YYSSW的完整格式是什么?
  6. Storm教程3编程接口
  7. NUC972配置为支持NFS
  8. Squid缓存服务器方案
  9. 【手游】手游行业专业相关知识储备
  10. 5个视频素材网站推荐
  11. Java基础知识(五) 字符串与数组
  12. 遥控汽车网页小游戏源码
  13. (七)苏世民:我的经验和教训:决策(34)
  14. Android 项目接入网易云信IM单聊,群聊
  15. mysql字符串转日期 格式:(年-月-日 时:分:秒.毫秒)
  16. 100!的尾数有多少个零?
  17. 计算机网络三级证书含金量,【热点】计算机三级证书有用吗,计算机三级证书含金量如何...
  18. 计算机桌面按哪个键锁定呀,计算机锁定屏幕快捷键-一种锁定计算机屏幕的快捷方式...
  19. 爬取段子网里面的搞笑段子
  20. linux sdb空间转移,Linux系统sda变sdb的解决

热门文章

  1. Spring boot 整合WebSocket
  2. cass连接复合线命令 lisp_南方CASS和AutoCAD快捷命令大全
  3. 【2021最新版】Kafka面试题总结(25道题含答案解析)
  4. 手机图案密码(3*3点阵)开锁次数 C++
  5. 微信小程序中播放视频 例子
  6. 机器人(RPA路程自动化)RPA流程自动化和AI的区别。
  7. 人人商城微信小程序价格显示问题
  8. 如何利用 RPA 实现自动化获客?
  9. 《深度学习》花书-读书笔记汇总贴(汇总19/19)
  10. 自编译 极路由2 大麦DW22D/DW203D/DW204D openwrt路由器固件分享