【python爬取天气数据】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

爬取:http://tianqi.2345.com/wea_history/57687.htm里面的数据,2011年到2021年数据
具体参考视频如下:https://www.bilibili.com/video/BV1zF41137gg?spm_id_from=333.999.0.0


提示:以下是本篇文章正文内容,下面案例可供参考

一、代码

代码如下(示例):

#涉及技术:
#1.headers中设置user agent反爬机制
#2.通过network抓包,分析ajax的请求和参数
#3.通过for循环请求不同的参数的数据
#4.利用pandas实现excel的合并与保存

url="http://tianqi.2345.com/Pc/GetHistory"

params={
    "areaInfo[areaId]": 70325,
    "areaInfo[areaType]": 2,
    "date[year]": 2022,
    "date[month]": 4
}

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

import requests
import pandas as pd
resp = requests.get(url,headers=headers,params=params)
print(resp.status_code)#200代表爬取成功
#print(resp.text)
data = resp.json()["data"]
#print(data)
df=pd.read_html(data)[0]
df.head()
#以上就是单个网页爬取过程

#怎么写函数封装起来
def craw_table(year,month):
    """提供年份和月份爬取对应的表格数据"""
    params={
    "areaInfo[areaId]": 54511,#这是城市代码北京
    "areaInfo[areaType]": 2,
    "date[year]": year,
    "date[month]": month
    }
    resp = requests.get(url,headers=headers,params=params)
    data = resp.json()["data"]
    df=pd.read_html(data)[0]
    return df

df=craw_table(2016,4)
print(df.head())
#怎么提取10年的数据到df里
df_list=[]
for year in range(2011,2022):
    for month in range(1,13):
        df=craw_table(year,month)
        df_list.append(df)
pd.concat(df_list).to_excel(r"G:\360Downloads\myself\zuoye\code\10年天气数据.xlsx",index=False)

二、分析

1.headers中设置user agent反爬机制
2.通过network抓包,分析ajax的请求和参数
3.通过for循环请求不同的参数的数据
4.利用pandas实现excel的合并与保存

总结

提示:这里对文章进行总结:
对于目标url用谷歌游览器打开,并且右键选择检查,查看网页代码构造,具体查看一些什么参数,请看视频,对于反爬机制,这里有关的参数是useragent

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值