概述
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、代码
- 二、分析
- 总结
前言
提示:这里可以添加本文要记录的大概内容:
爬取: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:360Downloadsmyselfzuoyecode10年天气数据.xlsx",index=False)
二、分析
1.headers中设置user agent反爬机制
2.通过network抓包,分析ajax的请求和参数
3.通过for循环请求不同的参数的数据
4.利用pandas实现excel的合并与保存
总结
提示:这里对文章进行总结:
对于目标url用谷歌游览器打开,并且右键选择检查,查看网页代码构造,具体查看一些什么参数,请看视频,对于反爬机制,这里有关的参数是useragent
最后
以上就是专一紫菜为你收集整理的【python爬取天气数据】前言一、代码二、分析总结的全部内容,希望文章能够帮你解决【python爬取天气数据】前言一、代码二、分析总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复