栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python爬虫可以用来看天气预报吗?

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python爬虫可以用来看天气预报吗?

就在前几天,温度就下降的很厉害,出门不多穿衣服,被风吹的酸爽大家都体验过。小编不知道小伙伴们有没有看天气预报的习惯,没有的话可以从本期的代码开始,要不要自己做一个天气预报表呢~在开始做表之前,我们肯定要准备一些数据和操作工具的,下面就一起来做天气预报表吧。


1 构造URL列表

每个月份的历史天气数据是通过一个 Javascript 文件获取的。因此,我们需要构造带爬取数据的 URL 列表,再批量爬取数据。

# 构造2019全年的月份列表
months = []
for year in (2019,):
    for month in range(12):
        months.append("%d%02d"%(year, month+1))
todo_urls = [
    "http://tianqi.2345.com/t/wea_history/js/"+month+"/58457_"+month+".js"
    for month in months
]


2 批量下载数据

使用 requests 库获取 js 文件中的数据,并存到 datas 变量中。

import requests
datas = []
for url in todo_urls:
    r = requests.get(url, headers = headers)
    if r.status_code!=200:
        raise Exception()
    # 去除javascript前后的字符串,得到一个js格式的JSON
    data = r.text.lstrip("var weather_str=").rstrip(";")
datas.append(data)


3 解析数据

我们从 js 文件获取的数据 json 格式存储的,需要使用 demjson 对数据进行解析。

# 解析所有月份的数据
all_datas = []
 
for data in datas:
    tqInfos = demjson.decode(data)["tqInfo"]
all_datas.extend([x for x in tqInfos if len(x)>0])


4 将结果导入 csv 文件

import csv
with open('./hangzhou_tianqi_2019.csv', 'w', newline='', encoding='utf-8') as csv_file:
    writer = csv.writer(csv_file)
    columns = list(all_datas[0].keys())
    writer.writerow(columns)
    
    for data in all_datas:
        writer.writerow([data[column] for column in columns])


5 结果展示


没想到我们也可以用python爬虫来看天气预报吧,这可比很早之前我们守在电视机前等待要方便多了,而且操作有趣。更多Python学习推荐:PyThon学习网教学中心。




转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/11950.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号