Python爬取中国天气网天气数据
由于一些需要,想要获取今天的天气数据,于是又捡起了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爬取中国天气网天气数据相关推荐
- Python爬取中国知网文献、参考文献、引证文献
转载自博客园文章作为学习资料,代码及相关介绍非常详细.原文链接见Python爬取 中国知网文献.参考文献.引证文献
- 使用Python爬取51job招聘网的数据
使用Python爬取51job招聘网的数据 进行网站分析 获取职位信息 存储信息 最终代码 进行网站分析 进入https://www.51job.com/这个网站 我在这就以python为例搜索职位跳 ...
- 使用Python爬取中国Mooc网讨论区内所有评论
最近受朋友委托,写了一个爬取中国Mooc往讨论区所有评论的程序 ,他需要这些数据写论文. 如下: 他需要爬取这些板块里所有的评论. 俗话说的好 六月七月爬虫热 因为这段时间许多的大学生都毕业了 特此写 ...
- 【pyecharts数据可视化】python爬取去哪儿网景点数据,做交互式数据可视化
写在前面 在网易云课堂看到城市数据团大鹏老师讲的<Python数据可视化利器:Pyecharts!>[传送门],于是把前一篇南京的景点数据做一个可视化. 1.还是去哪儿网景点爬取 具体可以 ...
- python爬取中国知网(中国优秀硕士学位论文数据库)
笔者这几天受团队任务安排,需要写一份儿关于知网(中国优秀硕士学位论文数据库 入口:http://gb.oversea.cnki.net/kns55/brief/result.aspx?dbPref ...
- python爬取中国天气网天气图标
python爬取中国天气网天气图标 准备工作 天气预报图例网址:http://www.weather.com.cn/static/html/legend.shtml 安装requests:pip in ...
- 使用Python爬取“最好大学网”软科中国最好大学排名2019并做可视化分析
使用Python爬取"最好大学网"软科中国最好大学排名2019并做可视化分析 简介 开发环境 爬取数据 1.获取网站页面 2.解析网页内容 3.存储数据 可视化分析 基本设置 显示 ...
- python爬取链家网的房屋数据
python爬取链家网的房屋数据 爬取内容 爬取源网站 爬取内容 爬取思路 爬取的数据 代码 获取房屋url 获取房屋具体信息 爬取内容 爬取源网站 北京二手房 https://bj.lianjia. ...
- python selenium 爬取去哪儿网的数据
python selenium 爬取去哪儿网的数据 完整代码下载:https://github.com/tanjunchen/SpiderProject/tree/master/selenium+qu ...
- python 爬取链家数据_用python爬取链家网的二手房信息
题外话:这几天用python做题,算是有头有尾地完成了.这两天会抽空把我的思路和方法,还有代码贴出来,供python的初学者参考.我python的实战经历不多,所以代码也是简单易懂的那种.当然过程中还 ...
最新文章
- sort,uniq,wc,history命令简介
- [转载]windows内存优化 没你想像那么美
- 28/100. Shortest Unsorted Continuous Subarray
- 道客巴巴vip账号共享2020_腾讯视频VIP怎么两个手机通用?
- YYSSW的完整格式是什么?
- Storm教程3编程接口
- NUC972配置为支持NFS
- Squid缓存服务器方案
- 【手游】手游行业专业相关知识储备
- 5个视频素材网站推荐
- Java基础知识(五) 字符串与数组
- 遥控汽车网页小游戏源码
- (七)苏世民:我的经验和教训:决策(34)
- Android 项目接入网易云信IM单聊,群聊
- mysql字符串转日期 格式:(年-月-日 时:分:秒.毫秒)
- 100!的尾数有多少个零?
- 计算机网络三级证书含金量,【热点】计算机三级证书有用吗,计算机三级证书含金量如何...
- 计算机桌面按哪个键锁定呀,计算机锁定屏幕快捷键-一种锁定计算机屏幕的快捷方式...
- 爬取段子网里面的搞笑段子
- linux sdb空间转移,Linux系统sda变sdb的解决
热门文章
- Spring boot 整合WebSocket
- cass连接复合线命令 lisp_南方CASS和AutoCAD快捷命令大全
- 【2021最新版】Kafka面试题总结(25道题含答案解析)
- 手机图案密码(3*3点阵)开锁次数 C++
- 微信小程序中播放视频 例子
- 机器人(RPA路程自动化)RPA流程自动化和AI的区别。
- 人人商城微信小程序价格显示问题
- 如何利用 RPA 实现自动化获客?
- 《深度学习》花书-读书笔记汇总贴(汇总19/19)
- 自编译 极路由2 大麦DW22D/DW203D/DW204D openwrt路由器固件分享