python爬虫入门实战---------一周天气预报爬取_python爬虫可以用来看天气预报吗?...

1605778462217805.jpg

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

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 结果展示

1605778238142233.png

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值