天气数据爬取

news2024/9/20 7:48:02

目录

  • 历史气象数据获取
    • 浏览器访问模拟

历史气象数据获取

主要的python包
requests
BeautifulSoup
re
pandas
lxml

浏览器访问模拟

根据浏览器Request-Header参数,让request模拟浏览器行为

import requests
from bs4 import BeautifulSoup
import re
import pandas as pd
 
url = 'https://www.wentian123.com/history/?location=%E5%98%89%E5%B3%AA%E5%85%B3&startdate=2024-01-01&enddate=2024-08-15'
header = {
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
'Accept-Encoding': 'gzip, deflate, br, zstd',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Cache-Control': 'max-age=0',
'Connection': 'keep-alive',
'Cookie': 'Hm_lvt_452d5df9c96fd4e38bdb12c20493de8a=1724145184; HMACCOUNT=7E8A91446E19E40E; Hm_lvt_a1574f7ae5f0b9e15ea9a7c1cd8e90c2=1724145900; Hm_lpvt_a1574f7ae5f0b9e15ea9a7c1cd8e90c2=1724918557; Hm_lpvt_452d5df9c96fd4e38bdb12c20493de8a=1724923348',
'Host': 'www.wentian123.com',
'Referer': 'https://qq.ip138.com/weather/lishi.htm',
'Sec-Fetch-Dest':'document',
'Sec-Fetch-Mode': 'navigate',
'Sec-Fetch-Site': 'cross-site',
'Sec-Fetch-User': '?1',
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36',
'sec-ch-ua': '"Not)A;Brand";v="99", "Google Chrome";v="127", "Chromium";v="127"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': "Windows",
}
#  创建数据表格
# 

header参数获取方式;
访问页面->右键->检查

这里主要是为了避免一些基本的反爬虫操作,若网站没有反爬虫机制,不配置,或者之配置基础的’User-Agent’参数即可。
在这里插入图片描述

# 输入参数根据检索网址进行配置
如:url = 'https://www.XXX.com/history/?location=%E5%98%89%E5%B3%AA%E5%85%B3&startdate=2024-01-01&enddate=2024-08-15'
# 其中的location、startdate、enddate是当你进行网页检索时输入的信息,这里通过params进行传递;中文的话,会进行自动转码
params = {
    'location': '嘉峪关',
    'startdate': '2024-01-01',
    'enddate': '2024-08-15'
}
# 请求网页链接
response = requests.get(url,params=params,headers=header)
# 解析网页
soup = BeautifulSoup(response.content, 'lxml')

# 根据网页检查显示的结果,通过访问树文件提取检索数据
datasoup = soup.find_all('tbody')
datas = datasoup[0].find_all('tr')
result= []
for data in datas:
    # 使用正则表达式搜索匹配项
    test_list  = data.text.split('\n')
    test_list = [item for item in test_list if item.strip() != '']
    # ['星期四', '2024-08-15', '多云转晴', '15℃ ~ 30℃', '西北风转微风 3-4级转<3级']
    week = test_list[0]
    date = test_list[1]
    weather = test_list[2]
    temperature = test_list[3]
    winds = test_list[4].split(' ')[0]
    winds_level = test_list[4].split(' ')[1]
    result.append([date, weather, temperature, winds, winds_level])
data = pd.DataFrame(result, columns=['日期', '天气', '温度', '风向','风力'])
data.to_excel(r'XXX\爬虫代码\县区_weather_data.xlsx', index=False)

request
beautifulesoup

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2097005.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Qt 实战(10)MVD | 10.1、MVD机制详解

文章目录 一、MVD机制1、MVC设计模式1.1、简介1.2、优缺点分析 2、什么是MVD&#xff1f;2.1、简介2.2、核心角色 前言&#xff1a; 在Qt框架中&#xff0c;MVD&#xff08;Model-View-Delegate&#xff09;机制是一种用于实现数据与用户界面分离的重要设计模式。它源于经典的M…

python 下载油管视频的评论

先说结果: 2024年9月2日上午, 能运行&#xff01; 起因(目的): Not Like Us 这首歌&#xff0c; 1.5亿播放量&#xff0c;34万个评论。 有时候很想知道大家都说了什么。 Youtube 也是互联网的一霸&#xff0c; 大公司。 想爬人家的数据&#xff0c; 先做好失败的心理准备。 …

不同框架下跑yolov10(pt、onnx_runtime、tensorrt)

不同框架下跑yolov10&#xff08;pt、onnx_runtime、tensorrt&#xff09; (qq.com)

cmake版本升级 CMake Error: Could not find CMAKE_ROOT !!!

背景 ubuntu默认安装cmake较低版本,但是有些开发环境需要较高的版本,这时候需要手动升级一波. 1 官网获取cmake安装包 https://cmake.org/files/LatestRelease/,cmak官网下载 下载后,放到ubuntu里面,然后解压. tar zxvf *.gz 解压之后, cd cmake-3.30.0-Linux-x86_64/bin/, …

asp.net Temporary ASP.NET Files修改为其他位置

Temporary ASP.NET Files这个文件夹是编译期间用于临时文件存储的目录。当请求一个新页面时ASP.NET会分析aspx页面并为其生成一个.cs文件&#xff0c;然后JIT编译器会编译这个cs生成一个dll&#xff0c;这些过程都是在这个目录里面进行的。其中还放了你在项目中引用的Assembly的…

[CTF]-Pwn:做题笔记

seccon2018_kindvm解析&#xff08;vm&#xff09;&#xff1a; 查看保护 这里有两次输入。 完整exp&#xff1a; from pwn import* pprocess(./kindvm)p.sendlineafter(bInput your name :,bflag) payloadb\x01\x00\xff\xd8 payloadb\x02\xff\xdc\x00 payloadb\x06 p.sendl…

FastAPI+Vue3零基础开发ERP系统项目实战课 20240831上课笔记 查询参数和分页实现

回顾 获取路径参数什么是路径参数&#xff1f;/user/{id}什么时候使用&#xff1f;需要传递参数怎么实现类型转换&#xff1f;声明参数的类型怎么捕获文件路径&#xff1f;{file_path:path} 什么是查询参数 查询字符串是键值对的集合&#xff0c;这些键值对位于 URL 的 ? 之…

深兰科技荣登《2024胡润中国元宇宙潜力企业榜》Top100

8月29日&#xff0c;“胡润中国元宇宙高峰论坛”在广州南沙隆重召开。论坛期间&#xff0c;胡润研究院发布了《2024胡润中国元宇宙潜力企业榜》&#xff0c;列出了元宇宙领域最具发展潜力和影响力的中国企业&#xff0c;深兰科技成功入围《2024胡润中国元宇宙潜力企业榜》Top10…

基质粘弹性咋回事?与组织生长啥关系?快来看看!

大家好&#xff0c;今天我们要来了解一个关于细胞外基质的有趣话题——《Matrix viscoelasticity controls spatio-temporal tissue organization》发表于《Nature materials》。细胞外基质的粘弹性对组织的时空组织起着重要作用&#xff0c;但这一作用尚未被完全理解。我们将通…

生成图片的base64编码(纯C语言实现)

一、前言 Base64编码是一种广泛使用的编码方案&#xff0c;将任意二进制数据转换为可打印的ASCII字符字符串。这种编码方式之所以重要&#xff0c;是因为许多通信协议和存储介质对数据的可传输性和可存储性有特定的要求&#xff0c;它们可能无法直接处理或有效传输二进制数据。…

[进阶]面向对象之static关键字

文章目录 一、什么是static关键字为什么要设置static关键字二、static的使用规则1、static修饰变量:2.static的修饰方法 练习&#xff08;定义数组工具类&#xff09;练习2&#xff08;定义学生工具类&#xff09;三、static的注意事项 一、什么是static关键字 static关键字是…

美国高防服务器运行《黑神话:悟空》配置需求及优化方法

《黑神话&#xff1a;悟空》作为一款备受关注的动作角色扮演游戏&#xff0c;其对计算资源和图形处理能力的需求相当高。在这种背景下&#xff0c;云服务器成为了一个能够提供强大支持的选项。下面将分析美国高防服务器在运行《黑神话&#xff1a;悟空》时的配置需求及优化方法…

微服务CI/CD实践(五)Jenkins Docker 自动化构建部署Node服务

微服务CI/CD实践系列&#xff1a; 微服务CI/CD实践&#xff08;一&#xff09;环境准备及虚拟机创建 微服务CI/CD实践&#xff08;二&#xff09;服务器先决准备 微服务CI/CD实践&#xff08;三&#xff09;gitlab部署及nexus3部署 微服务CI/CD实践&#xff08;四&#xff09…

为什么现在那么多人用骨传导耳机?怎么选骨传导耳机?答案来了!

随着健康生活观念的深入人心&#xff0c;运动健身已成为一种生活态度&#xff0c;而音乐则是这场健康之旅中不可或缺的伴侣。然而&#xff0c;传统耳机在运动时的不便促使市场呼唤更加人性化的产品。骨传导耳机的出现&#xff0c;正是对这一需求的精准把握。它采用非入耳技术&a…

VTK平面切割

文章目录 一、vtkClipPolyData二、CapClip三、SolidClip四、vtkClipClosedSurface 本文的主要内容&#xff1a;简单介绍VTK中通过平面切割模型的相关功能。 哪些人适合阅读本文&#xff1a;有一定VTK基础的人。 一、vtkClipPolyData VTK官网描述&#xff1a; vtkClipPolyData使…

AI绘画 | Stable diffusion 修复老照片

大家好呀&#xff01;今天我要和大家分享一个使用Stable diffusion修复老照片的功能。 你有没有遇到这样的问题&#xff1a;想要修复一张老照片&#xff0c;但是发现照片质量太差&#xff0c;噪点太多&#xff0c;根本无法修复&#xff1f; 别担心&#xff01;Stable diffusio…

DS18B20温度传感器详解(STM32)

目录 一、介绍 二、传感器原理 1.原理图 2.工作时序 3.工作原理&#xff1a;复位脉冲与应答脉冲 4.工作原理&#xff1a;写时序 5.工作原理&#xff1a;读时序 6.工作原理&#xff1a;DS18B20读取的数据格式 7.工作原理&#xff1a;DS18B20配置步骤 三、程序设计 ma…

vue 批量自动引入并注册组件或路由

有时候有大量的组件.vue后缀的,或.js,或.ts文件, 需要一个个的手动引入很麻烦,那么你可以尝试这样创建一个index.js 本项目使用vue3.x, vue2.x也可以照样用; 这里在components里面创建了一个idnex.js 文件 require.context 可以读取文件, 第一个参数是指当前文件夹, 第二个参…

路径优化 minimum-snap(对A*的全局路径进行优化)

实现效果&#xff1a; 介绍&#xff1a; 使用Astar进行路径规划&#xff0c;使用minimum-snap进行路径优化处理&#xff0c;建议参考文章&#xff1a; 【附源码和详细的公式推导】Minimum Snap轨迹生成&#xff0c;闭式求解Minimum Snap问题&#xff0c;机器人轨迹优化&#…

泥水位监测站——水文百科

传统的水位监测往往依赖于人工定期巡检&#xff0c;这不仅费时费力&#xff0c;而且可能受到天气、交通等多种因素的限制。而水位监测站的全自动化监测则能够24小时不间断地工作&#xff0c;无需人员现场值守&#xff0c;从而显著减少了人工巡检的次数和成本。自动化监测系统能…