python爬虫天气预报难不难_python爬虫可以用来看天气预报吗?
就在前幾天,溫度就下降的很厲害,出門不多穿衣服,被風吹的酸爽大家都體驗過。小編不知道小伙伴們有沒有看天氣預報的習慣,沒有的話可以從本期的代碼開始,要不要自己做一個天氣預報表呢~在開始做表之前,我們肯定要準備一些數據和操作工具的,下面就一起來做天氣預報表吧。
1 構造URL列表
每個月份的歷史天氣數據是通過一個 Javascript 文件獲取的。因此,我們需要構造帶爬取數據的 URL 列表,再批量爬取數據。#?構造2019全年的月份列表
months?=?[]
for?year?in?(2019,):
for?month?in?range(12):
months.append("%dd"%(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學習推薦:JQ教程網Python大全。
總結
以上是生活随笔為你收集整理的python爬虫天气预报难不难_python爬虫可以用来看天气预报吗?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: crontab shell 每5秒执行_
- 下一篇: mysql 优化配置 大批量数据插入_p