【python爬虫】——历史天气信息爬取

news/2024/7/19 11:53:30 标签: python, 爬虫, 开发语言

文章目录

  • 1、任务描述
    • 1.1、需求分析
    • 1.2 页面分析
  • 2、获取网页源码、解析、保存数据
  • 3、结果展示

1、任务描述

1.1、需求分析

  • 在2345天气信息网2345天气网依据地点时间对相关城市的历史天气信息进行爬取。
    在这里插入图片描述

1.2 页面分析

  • 网页使用get方式发送请求,所需参数包括areaInfo[areaId]、areaInfo[areaType]、date[year]、date[month],分别为城市id、城市类型,年、月。
    在这里插入图片描述
    在这里插入图片描述

2、获取网页源码、解析、保存数据

python">import pandas as pd
import requests
from bs4 import BeautifulSoup

url = "https://tianqi.2345.com/Pc/GetHistory"
def crawl_html(year, month):
    """依据年月爬取对应的数据"""
    params = {'areaInfo[areaId]': 54511,
            'areaInfo[areaType]': 2,
            'date[year]': year,
            'date[month]': month}

    headers = {'User-Agent':'''Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36'''}

    response = requests.get(url, headers=headers, params=params)
    data = response.json()["data"]
    
    df = pd.read_html(data)[0]
    return df

# 下载2015-2023年北京历史天气数据
df_list = []
for year in range(2015, 2023):
    for month in range(1, 13):
        print("爬取:%d年 %d月"%(year, month))
        df = crawl_html(year, month)
        df_list.append(df)

pd.concat(df_list).to_excel("practice04_BeijingWeather.xlsx", index=False)

3、结果展示

在这里插入图片描述


http://www.niftyadmin.cn/n/5036333.html

相关文章

交换机上的PoE技术

交换机的PoE代表Power over Ethernet(以太网供电),它是一种技术,允许通过以太网电缆传输数据的同时为连接的设备提供电力供应。 传统上,网络设备(如IP电话、无线接入点、网络摄像机等)通常需要…

Edge 浏览器『版本回退』和『关闭更新』

前言 最近 Edge 浏览器又更新了,给整体浏览器页面布局进行大改动,之前苗条的标签页和收藏夹栏瞬间变得臃肿了,我实在无法忍受这种布局,所以我索性直接进行版本回退和设置永久关闭更新,详细步骤请看下文 Edge 浏览器版…

基于Python+Pytest+Playwright+BDD的UI自动化测试框架

一、框架介绍 本框架是基于Python+Pytest+Playwright+BDD的UI自动化测试框架。 git地址: https://gitlink.org.cn/floraachy/uiautotest_playwright.git项目参与者: floraachy个人主页: https://www.gitlink.org.cn/floraachy测试社区地址: https://www.gitlink.org.cn/zone/…

RP-母版 流程图 发布和预览 团队项目

母版 创建一个模版,可根据形态不同引用不同母版。若不想母版受页面变化影响,也可以在引用时脱离母版 创建母版: 1) 转换为母版 2)在母版页面中添加 母版拖放行为 拖放行为,在母版名称上右键, 、 任意…

【全面】CSS3新增了哪些新特性?

目录 一、选择器的扩展 1. 属性选择器 2. 伪类选择器 3. 伪元素选择器 二、盒子模型的增强 1. box-sizing属性 2. 边框圆角(border-radius) 3. 盒阴影(box-shadow) 三、过渡和动画效果 1. 过渡效果 2. 动画效果 四、响…

Linux下,基于TCP与UDP协议,不同进程下单线程通信服务器

C语言实现Linux下&#xff0c;基于TCP与UDP协议&#xff0c;不同进程下单线程通信服务器 一、TCP单线程通信服务器 先运行server端&#xff0c;再运行client端输入"exit" 是退出 1.1 server_TCP.c **#include <my_head.h>#define PORT 6666 #define IP &qu…

JVM G1垃圾回收器学习笔记

前言 最近在工作中遇到频繁FullGC且YoungGC时间有时特别长的情况&#xff0c;而自己对JVM的垃圾回收也是一知半解&#xff0c;因此需要对JVM做系统的了解&#xff0c;为快速解决工作中的问题&#xff0c;能有效分析GC日志和业务代码&#xff0c;先从G1垃圾回收器开始学习&…

layUI.open在手机端小屏幕不能显示全页面,也没办法滑动

首先我的项目是点击编辑&#xff0c;打开一个编辑信息页面&#xff0c;在网页端显示效果如下&#xff1a; 有时候工作人员离开电脑&#xff0c;需要手机操作修改&#xff0c;但是弹出的编辑页面显示不全内容&#xff0c;也没办法通过触摸滑动页面看见左面的内容&#xff0c;如下…