实例:python爬取某地历史天气预报
实现目标:爬取某地历史天气情况(以深圳2019年为例)
需要的库:requests,bs4,pandas
PS:requests 和 bs4 库很小,大概150K左右
第一步:
找目标url;
第二步:获取网页源代码
url = 'http://www.tianqihoubao.com/lishi/shenzhen/month/201901.html'
req = requests.get(url)
html = req.text
第三步:数据提取,提取自己需要的内容
soup = BeautifulSoup(html,'html.parser')
tr_list = soup.find_all('tr')
datas,condition,temp = [], [], []
for data in tr_list[1:]:sub_data = data.text.split()a = sub_data[0].replace('年','/')#将年月日用'/'代替,此处可省略,看个人需求b = a.replace('月','/')c = b.replace('日', '')datas.append(c)condition.append(''.join(sub_data[1:3]))temp.append(''.join(sub_data[3:6]))
打印效果如下:
第四步:保存数据
_data = pd.DataFrame() # 创建一个表格
_data['日期'] = datas #向表格内添加数据
_data['天气状况'] = condition
_data['温度'] = temp
_data.to_csv('深圳2019.01天气记录.csv',index=False, encoding='utf-8')
效果如下:
如下是一个月和多个月的整体代码。
import requests
from bs4 import BeautifulSoup
import pandas as pd'''====================================深圳2019.1历史天气数据======================================'''
# 目标url
url = 'http://www.tianqihoubao.com/lishi/shenzhen/month/201901.html'
# 获取网页源代码
req = requests.get(url)
html = req.text
soup = BeautifulSoup(html,'html.parser')
tr_list = soup.find_all('tr')
datas,condition,temp = [], [], []
for data in tr_list[1:]:sub_data = data.text.split()a = sub_data[0].replace('年','/')b = a.replace('月','/')c = b.replace('日', '')datas.append(c)condition.append(''.join(sub_data[1:3]))temp.append(''.join(sub_data[3:6]))
# 数据保存
_data = pd.DataFrame() # 创建一个表格
_data['日期'] = datas #向表格内添加数据
_data['天气状况'] = condition
_data['温度'] = temp
_data.to_csv('深圳2019.01天气记录.csv',index=False, encoding='utf-8')'''====================================深圳2019 1——4月的历史天气数据======================================'''# 获取url
def get_data(url):req = requests.get(url)html = req.text# 数据提取soup = BeautifulSoup(html,'html.parser') tr_list = soup.find_all('tr')datas,condition,temp = [], [], []for data in tr_list[1:]:sub_data = data.text.split()# print(sub_data)a = sub_data[0].replace('年','/')b = a.replace('月','/')c = b.replace('日', '')datas.append(c)condition.append(''.join(sub_data[1:3]))temp.append(''.join(sub_data[3:6]))# 数据保存_data = pd.DataFrame() # 创建一个表格_data['日期'] = datas #向表格内添加数据_data['天气状况'] = condition_data['温度'] = temp# print(_data)return _datadata_01 = get_data('http://www.tianqihoubao.com/lishi/shenzhen/month/201901.html')
data_02 = get_data('http://www.tianqihoubao.com/lishi/shenzhen/month/201902.html')
data_03 = get_data('http://www.tianqihoubao.com/lishi/shenzhen/month/201903.html')
data_04 = get_data('http://www.tianqihoubao.com/lishi/shenzhen/month/201904.html')data = pd.concat([data_01,data_02,data_03,data_04]).reset_index(drop=True)
data.to_csv('深圳2019.01-04月天气记录.csv',index=False, encoding='utf-8')
实例:python爬取某地历史天气预报相关推荐
- 使用Python爬取CSDN历史博客文章列表,并生成目录
使用Python爬取CSDN历史博客文章列表,并生成目录 这篇博客将介绍如何使用Python爬取CSDN历史博客文章列表,并生成目录. 2020年 2020年04月 cv2.threshold() 阈 ...
- python爬取基金历史净值_Python学习笔记之抓取某只基金历史净值数据实战案例
摘要:这篇Python开发技术栏目下的"Python学习笔记之抓取某只基金历史净值数据实战案例",介绍的技术点是"Python学习笔记.Python.历史净值数据.学习笔 ...
- python爬虫知网实例-python爬取知网
广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! https:github.comgnemougdistribute_crawler ...
- python爬取网站实例,Python爬取网页简单示例
准备材料 一:使用到的Python第三方库是requests 和 BeautifulSoup 二:选择要爬取的网页 我选择了豆瓣小组里的一个帖子回复(是微博或者微信的签名,个人感觉比较有意思) 地址是 ...
- python电影评论的情感分析流浪地球_爬虫实例 | Python爬取《流浪地球》豆瓣影评与数据分析(下)...
[芝麻IP代理]三.数据分析与可视化 1.获取cookies 城市信息筛选中文字 匹配pyecharts支持的城市列表 2.基于snownlp的情感分析 关于snownlp的作用,主要可以进行中文分词 ...
- 基于Python爬取福建省莆田市天气预报数据获取与预处理的设计与实现
文章目录 1 绪论 1.1 概述 1.2 课题背景 2 采用技术与开发工具的简介 2.1 Pthon语言的产生和发展历史 2.2 Python语言的特色 2.3 Python的缺点 2.4 HTML定 ...
- python爬取天天基金历史净值_用Python抓取天天基金网基金历史净值数据
请关注微信公众号:金融数学 FinancialMathematics 玩基金的朋友应该都深有体会,2018是相当惨淡的一年,尤其下半年,能够保本就不错了.2019迎来了开门红,从2月11日到14日,连 ...
- python爬取基金历史净值_Python爬取天天基金网历史净值数据
type 类型,历史净值用lsjz表示 code 基金代码,六位数字 sdate 开始日期,格式是yyyy-mm-dd edate 结束日期,格式是yyyy-mm-dd per 一页显示多少条记录 为 ...
- python爬取2345天气网上2011年-2018年历史天气
由于学业需要,本文利用python爬取2345历史天气,爬取年份为2011年到2018年,由于网页格式以及自身编程水平有限,本文分成四个部分爬取2011~2018的历史天气,分别为:2011-2015 ...
最新文章
- 从Java 9 到 Java 17之Java 12
- 深入解读首个万亿级语言模型 Switch Transformer
- 接口测试工具--apipost如何取消json参数中转义字符
- java juc 包_JUC java并发包
- sql练习三(DataWhale 系列-最终)
- GBK字库集测试求助
- Windows如何刷新DNS缓存
- 月销13485台的理想ONE,到底做对了哪些事儿?
- 2011款iMac的AirDrop使用方法。
- Ubuntu Linux 操作系统-清华大学开源软件镜像站下载
- 各位观众老爷不如点进来随便评论几句QUQ
- 虚化背景(深度映射篇)
- 计算机word模块试题,计算机word考试试题1(附答案)
- 网页引用优酷视频并添加封面自动播放
- 如何实现从CTO到CEO的跨越(红色标注是我关注的点)
- python练习(1)
- 联想卡在logo界面_联想电脑卡在logo界面 联想电脑卡在载入界面怎么办
- 散热膏推荐 散热硅脂推荐
- 八旋翼设计,垂直起降!世界上最小的飞行汽车来了
- 使用Java写个福字
热门文章
- 360安全浏览器龙芯、飞腾、兆芯版
- html页面弹窗代码
- 好久不联系的朋友,我不知道要用什么理由关心你的生活
- ​​​​​​​Fluke Ti450Pro 红外热像仪有没有停产?
- 共赢全屋智能X全屋定制新风口 立林与尚品宅配达成战略合作
- 实例教程-Python与Kivy联合开发Android程序及与硬件交互1
- 代码覆盖率检测工具安装
- CentOS 7 防火墙开放端口访问
- 存储过程及Kettle初体验
- python中的ideavim有什么作用_IdeaVim插件施用技巧