历史天气信息数据爬取

Python获取北上广深历史天气数据并做数据可视化 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章。 阅读详情

北京市2020年1月份历史天气爬取

视频教程(讲的阔以的)

1 确定目标网址

1.1 目标网址
[2345天气]
1.2 目标数据
北京2020年一月份

2 分析网页

分析过程大家去看视频吧,讲的很好,现学现卖 😁

3 爬取js文件
爬取过程
1.构造URL
2.用requests获取js,处理成json样式,接下转换成标准的json
3.用demjson转换成标准的json
4.解析数据放入列表
5.封装成一个函数
这里使用的工具包分别有:requests、demjson、re
经过上面的分析,我们发现目标文件的地址的变化规律,是更改 日期和 地区编码
构造URL

所以根据变化规律构造URL地址,这里也可不用构造,因为我只爬取1个月份的,构造是为了以后方便
url : http://tianqi.2345.com/t/wea_history/js/202002/54511_202002.js

#导入包
import requests
import re
import demjson

#定义日期和地区编码
date_nu = '202001'
org_code = '54511'
url_js = 'http://tianqi.2345.com/t/wea_history/js/{date}/{org}_{date}.js'.format(date=date_nu,org=org_code)

用requests获取文件
#构造headers 
header_info = {'User-Agent':'Mozilla/5.0 (compatible; WOW64; MSIE 10.0; Windows NT 6.2)'} 

#获取数据
resp = requests.get(url_js,headers = header_info)
# get 方法获取到的是一个对象,获取其中的文本使用resp.text

# 因为我们在后台看到,这里获取到的并不是以标准的json格式,这里把前后不需要的截取掉,使其形式与json类似,然后用demjson把里面的数据转换成列表➕字典的形式

#到这一步,我们也可使用正则或者单独的截取把信息提取来,我这么写是练习技能为主
resp = resp.text.lstrip("var weather_str=").rstrip(";")

 
'''
正则匹配方法
pattern = re.compile('{ymd:\'(.*?)\',bWendu:\'(.*?)\',yWendu:\'(.*?)\',tianqi:\'(.*?)\',fengxiang:\'(.*?)\',fengli:\'(.*?)\'},',re.S) 
resp = re.findall(pattern,resp.text)
'''
提取目标数据

我在这里只提取了日期和温度

#定义数组变量
date_line = []
temp_info = []

#提取数据
for i in weather_info :
#最高温度  温度里面包含特殊符号,这里用正则表达式处理一下
# ^ 以什么开头;  [\-|0-9]:\转义负号 |表示或,总体表示 -或 数字0到9; [0-9]:数字0到9 *匹配前面的元符0次或一次
    rr = re.compile("^[\-|0-9][0-9]*")  
    rr = rr.findall(i["bWendu"])
    date_line.append(i["ymd"])
    temp_info.append(rr[0])
#这样我们就获得了需要用到的数据 嘿嘿
完整版

'''
Created on Feb 12, 2020

@author: sun
'''
 
import requests
import re
import demjson

#注意事项  当我们import json的时候,它会先搜索json.py所在目录有没有对应的模块,
#由于我们命名的json.py与json模块文件重名,所以会误以为我们自己创建的json.py即为json模块文件,所以会出现这样的错误。
 
#目标网址 http://tianqi.2345.com/wea_history
# json 文件的位置http://tianqi.2345.com/t/wea_history/js/202002/54511_202002.js
#经过塞选不同的地区发现变化的主要是日期和地区编码
def getWeatherInfo(date_nu,org_code,wen_du):  
    #构建url
    url = 'http://tianqi.2345.com/t/wea_history/js/{date}/{code}_{date}.js'.format(date = date_nu,code = org_code)
    #爬取数据
    
    #构造请求头
    header_info = {'User-Agent':'Mozilla/5.0 (compatible; WOW64; MSIE 10.0; Windows NT 6.2)'} 
    
    resp = requests.get(url,headers = header_info)  
    #使用requests方法后,会返回一个response对象,其存储了服务器响应的内容,如上实例中已经提到的 r.text、r.status_code……
    #获取文本方式的响应体实例:当你访问 r.text 之时,会使用其响应的文本编码进行解码,并且你可以修改其编码让 r.text 使用自定义的编码进行解码。 
    #get返回的是一个response对象,里面有各种变量,你需要的是其中叫text的那一个。你直接print这个response对象的结果完全取决于开发者对__repr__或者__str__的重写情况。
    resp = resp.text.lstrip("var weather_str=").rstrip(";")
    #这时已经获取到数据了,也可以用正则或其他方式把数据拆分出来
    weather_info = demjson.decode(resp)["tqInfo"] #把列表里面的元素转换成字典
    weather_info = [i for i in weather_info if len(i)>0]  #因为最后一个是空的,所以这里把空的去掉
    #定义数组
    date_line = []
    temp_info = []
    
    #提取信息
    for i in weather_info :
        #最高温度  温度里面包含特殊符号,这里用正则表达式处理一下
        # ^ 以什么开头;  [\-|0-9]:\转义负号 |表示或,总体表示 -或 数字0到9; [0-9]:数字0到9 *匹配前面的元符0次或一次
        rr = re.compile("^[\-|0-9][0-9]*")  
        rr = rr.findall(i[wen_du])
        date_line.append(i["ymd"])
        temp_info.append(rr[0])
    return date_line,temp_info
    

#print(getWeatherInfo('202001','54511')[0])
#print(getWeatherInfo('202001','54511')[1])




python学习系列3——爬取历史天气数据 根据输入的城市和年月,对该地区该时间段的历史天气数据进行爬取。其中用到了xpinyin库Pinyin类对输入的地名转换为拼音,用于获取信息时的地址输入。将获得的天气数据进行打印和保存 代码: import urllib2 import urllib import codecs import random import os from xpinyin import Pinyin from bs... 阅读详情

相关推荐

python爬取2345天气网上2011年-2018年历史天气

由于学业需要,本文利用python爬取2345历史天气,爬取年份为2011年到2018年,由于网页格式以及自身编程水平有限,本文分成四个部分爬取2011~2018的历史天气,分别为:2011-2015年,201年1-2月,2016年3-12月,2017年以后。本文爬取的地区是江浙沪皖地区的历史天气。 首先为2011年-2015年的天气代码如下: #####多个城市循环爬取 ###输入待查城市代号 city0=[58362,58343,58141,58044,58238,58259,58357,58246,5

weixin_43458484的博客 1868

爬虫攻守道 - 2023最新 - JS逆向 - Python Scrapy实现 - 爬取某天气网站历史数据

爬虫与反爬虫 - 2023最新爬取某天气网站历史数据 - JS逆向 - Python实现

biaobro的博客 3333

Python爬虫教程:抓取天气历史数据进行气候分析

天气历史数据是指某一地区在特定时间段内的天气记录。温度:日间最高温、最低温、气温变化等。降水量:降水量、降水时长、降水强度等。湿度:空气湿度的变化。气压:气压的变化趋势。风速与风向:风的强度和方向的变化。日照时长:日照时长对农业生产和日常生活的影响。天气历史数据是进行气候研究、农业气象学研究、环境保护等领域分析的重要依据。它们可以帮助我们理解气候变化的长期趋势、异常天气的发生以及对社会经济活动的影响。通过这篇教程,我们学习了如何使用Python爬虫抓取天气历史数据,进行数据存储、清洗和分析。

2201_76125261的博客 708

使用python爬取天气信息(包括历史天气数据)

使用Python爬虫获取城市天气信息(包括历史天气数据) 使用python爬取历史天气数据 文章目录使用Python爬虫获取城市天气信息(包括历史天气数据)一、准备工作二、完整代码 一、准备工作 python环境3.6.7,需要用到的库主要有re,BeautifulSoup,requests以及pandas(用于保存数据) 目标网站为四川省绵阳市天气网站 分析目标网站的源码,部分源码如图: 可以看到,所有数据都被封装在class为thrui的标签下,所以我们可以使用bs解析数据后使用find_all函数

qq_44988175的博客 4万+

天气数据爬虫:收集天气预报和历史天气数据

本文介绍了如何使用Python编写一个天气数据爬虫,收集天气预报和历史天气数据。通过结合requestspandas等技术,我们能够抓取不同来源的天气数据,并进行数据存储和分析。希望通过本文的学习,能够帮助你理解如何在Python中进行天气数据的爬取与分析。随着爬虫技术的不断进步,我们可以进一步扩展爬虫的功能,提升数据分析的精度和深度,从而更好地把握天气变化规律,为各行各业提供有效的天气预测和分析支持。

2201_76125261的博客 644

基于python的网络爬虫爬取天气数据及可视化分析(Matplotlib、sk-learn等,包括ppt,视频)

本文旨在利用Python编程语言实现天气数据信息的爬取和可视化分析。Python作为一种简单易学且功能强大的编程语言,被广泛应用于数据处理和分析领域。通过使用Python,我们可以方便地进行网页爬取和数据处理。详细介绍了如何使用Python编写网络爬虫程序来获取天气数据。

chen_5213的博客 2万+

python爬取本地天气信息_用python爬取历史天气数据的方法示例

某天气网站(www.数字.com)存有2011年至今的天气数据。准备爬的历史天气1. 爬之前先分析url左上有年份、月份的下拉选择框,按F12,进去看看能否找到真正的url:很容易就找到了,左边是储存月度数据的js文件,右边是文件源代码,json格式。双击左边js文件,地址栏内出现了url:http://tianqi.数字.com/t/wea_history/js/54511_20161...

weixin_39928017的博客 185

用Blender给ArduPilot无人船编队设计灯光秀:从建模到飞行的保姆级教程

本文详细介绍了如何利用Blender和ArduPilot为无人船编队设计灯光秀的全流程技术方案。从3D动画设计、坐标转换、数据导出到ArduPilot飞控配置和灯光控制,提供了一套完整的保姆级教程,帮助开发者实现水面灯光编队表演。

weixin_29213525的博客 386

python爬取本地天气信息_[爬虫] Python爬取天气网站获取历史天气数据并可视化

第十篇好久不见(试试Markdown,预计阅读时间:5分钟)一、写在开头的话由于之前一直在做项目处理数据,好久没有写爬虫了,趁着后台程序正在跑,今儿就爬点天气数据,做个简单的可视化,耍一下,也希望能借机与各位讨论天气数据中各个参数之间的相关性问题,因为之后想将天气数据与别的数据进行结合分析。操作环境为:window 10python 3.6Jupyter Notebookrequests...

weixin_39609953的博客 1185

深入解析Lora模块的工作原理与应用场景

本文深入解析了Lora模块的工作原理与应用场景。Lora模块作为物联网领域的核心无线通信组件,凭借其独特的扩频调制与半双工通信技术,实现了远距离、低功耗的数据传输。文章详细拆解了其技术内核,包括空中唤醒等低功耗奥秘,并提供了地址、信道、空中速率等关键参数的实战配置指南。最后,探讨了Lora模块在智能家居、智慧农业、城市监测等广域物联网场景中的具体应用,为开发者提供了从理论到实践的完整参考。

weixin_29174385的博客 333

k8s架构、工作流程、集群组件详解

Kubernetes(简称K8s,是因为 k 和 s 之间有八个字符)是一个开源的容器编排平台,用于管理云平台中多个主机上的容器化应用程序。它提供了一种机制,用于自动化部署、扩展和管理容器化应用程序的集群。Kubernetes的目标是让部署容器化应用程序变得简单高效。它提供了应用程序部署、规划、更新和维护的基本机制,同时具备强大的扩展性和可靠性。Kubernetes采用主从设备模型(Master-Slave架构),其中Master节点负责核心的调度、管理和运维任务,而Slave节点负责运行应用程序的容器。

qq_51545656的博客 4382

【python爬虫实战】——爬取历史天气信息_天气数据数据+可视化(附完整代码)

通过Python爬虫,可以高效地采集公开的历史天气数据,然后将其应用于各种应用场景。比如气象研究、旅游的规划、辅助农业的决策等等。本文将详细介绍历史天气数据的抓取方法

weixin_65147810的博客 4635

【4. BSP开发指南 - [4.6. 安全启动使用说明]】

【4. BSP开发指南 - [4.6. 安全启动使用说明]】

Sugar_wolf的博客 275

python爬取本地天气信息_Python爬虫项目实战——爬取全国城市历史天气气象数据...

爬虫着实是数据采集中的神器,借助于爬虫的合理设计与实现我们能够很方便地从网络环境中采集到所需要的数据,之后借助于相应的数据解析组件可以快速地抽取得到所需要的数据项。今天有一个数据获取需求,之前采集的天气、气象等数据源大都是实时性质的,没有提供出来历史数据。这里需要做的就是对历史数据做一个爬取,我们选用的网站为天气后报网站,网页截图如下:第一眼看到的时候就给人一种,丑到爆炸的感觉有没有,但是呢,我们...

weixin_39753747的博客 547

10分钟极速SpringBoot项目搭建:OpenClaw AI实战攻略

OpenClaw,作为一款革命性的 AI 工具,凭借其强大的智能体能力,能够在短短 10 分钟内,帮助开发者从零构建一个完整的 SpringBoot 项目,实现真正的极速开发。它不仅极大地提高了开发效率,还降低了开发门槛,让更多的开发者能够专注于业务逻辑的实现,而无需被繁琐的配置工作所困扰

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 298

详细分析一下华为自研的MetaERP系统中的合并报表流程与规则

华为MetaERP合并报表系统针对其全球化复杂业务量身定制,采用五层自动化架构:统一数据采集、多币种转换、智能对账协同、规则化抵消处理及多维分析输出。系统核心在于可配置的智能规则引擎,涵盖股权合并范围、内部交易抵消、未实现利润计算等复杂场景,实现多准则并行处理。相比传统软件,该系统深度集成业务数据、支持准实时合并,并通过参数化配置快速适应组织变革,成为华为全球财务管控的"数字神经中枢",在效率、准确性和安全性上具有显著优势。

金牌架构师 673

python爬取并得到有用历史天气信息,并添加到数据库中

程序说明: **因为2月是28或者29天,还有1 3 5 7 8 10 12 月是31天,用3次遍历太麻烦了,所以这个代码去爬取了除去2月的其他月份的30天的天气情况, 要想爬取完整的,修改for i in range(1,31): 中的31,并改为29或者28 31等,就可以爬取完整的天数** #/* # 网络数据获取 # Time:2020-06-01 # */ import urllib.request import bs4 from bs4 import Beautiful

weixin_45005209的博客 457

基于 STM32 的全自动洗车监控系统设计与实现

本文提出一种基于 STM32F103RCT6 芯片的全自动洗车监控系统方案,通过多传感器融合与智能控制算法,实现车辆检测、洗车流程自动化及状态远程监控。系统集成硬件选型、电路设计、软件流程及通信功能,可广泛应用于智能洗车场景。

weixin_42300449的博客 964

网页爬虫(七):爬取某城市历史天气数据

【代码】网页爬虫(七):爬取某城市历史天气数据。

weixin_53825153的博客 807

深度学习论文: Towards Total Recall in Industrial Anomaly Detection

在大规模工业制造中,能够准确检测出有缺陷的零件至关重要。我们在这项工作中面临的一个特殊挑战是冷启动问题:仅使用正常的示例图像来训练模型。虽然可以针对每个类别手动设计解决方案,但我们的目标是构建能够自动适用于多个任务的系统。最佳的方法是将ImageNet模型的嵌入特征与异常检测模型结合起来。在本文中,我们在这一研究基础上进行了扩展,并提出了PatchCore,它利用了一个具有最大代表性的正常补丁特征内存库。通过这种方法,我们能够更好地解决冷启动问题,并提高系统在多任务上的性能。

mingo_敏 1878

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

python 天气与股票的关系--第一部分,爬取数据

电影 点球成金 (Moneyball 2011)此电影中,彼得·布兰德(Peter Brand), 就是那个胖子,他作为一名数据分析专家,他建立自己的数学公式 (数学模型),然后用实际的情况, 来验证。那么,我的一个想法是:天气情况与股票走势有什么关系。爬点数据,验证一下。

waterHBO的博客 526

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

python实现获取搜索引擎式的城市天气预报及历史天气

根据操作者在键盘上所输入的城市及具体时间,自动爬取其相关的天气信息

Jayden的博客 1039

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

全国历史天气查询/历史天气预报查询——全国各月份数据爬取

全国历史天气查询——全国各月份数据爬取

阿芒Aris的博客 1万+

Python爬虫项目实例——爬取上海市历史天气数据

爬天气的网站为2345天气王 URL:http://tianqi.2345.com/ 历史天气:http://tianqi.2345.com/wea_history/58465.htm 58465是城市的ID 该项目主要是为了获取上海市的历史天气数据,字段包含日期、最低气温、最高气温、风向、风力、天气状况、空气质量指标值、空气质量等级和空气质量说明,所有数据一共包含2544天的记录。 下面就详细写出整个爬虫的代码: # 导入第三方包 import requests #用于URL的请求和数据的获取 imp

Fo*(Bi)的博客 3325

天气爬取程序

以下是911天气爬取的程序 爬取内容包括时间,图片,天气,温度,湿度,风力,风级,降水量,体感温度,云量 import requests from bs4 import BeautifulSoup from collections import defaultdict from dateutil.relativedelta import relativedelta from datetime i...

weixin_43128028的博客 1695
上一篇: Matplotlib入门01-折线图
下一篇: Matplotlib入门-02折线图
Aronup
博客等级 码龄7年 75粉丝 35原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值