python爬蟲如何爬取天氣預(yù)報(bào)表-創(chuàng)新互聯(lián)

小編給大家分享一下python爬蟲如何爬取天氣預(yù)報(bào)表,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

為企業(yè)提供成都做網(wǎng)站、網(wǎng)站建設(shè)、網(wǎng)站優(yōu)化、成都營(yíng)銷網(wǎng)站建設(shè)、競(jìng)價(jià)托管、品牌運(yùn)營(yíng)等營(yíng)銷獲客服務(wù)。創(chuàng)新互聯(lián)公司擁有網(wǎng)絡(luò)營(yíng)銷運(yùn)營(yíng)團(tuán)隊(duì),以豐富的互聯(lián)網(wǎng)營(yíng)銷經(jīng)驗(yàn)助力企業(yè)精準(zhǔn)獲客,真正落地解決中小企業(yè)營(yíng)銷獲客難題,做到“讓獲客更簡(jiǎn)單”。自創(chuàng)立至今,成功用技術(shù)實(shí)力解決了企業(yè)“網(wǎng)站建設(shè)、網(wǎng)絡(luò)品牌塑造、網(wǎng)絡(luò)營(yíng)銷”三大難題,同時(shí)降低了營(yíng)銷成本,提高了有效客戶轉(zhuǎn)化率,獲得了眾多企業(yè)客戶的高度認(rèn)可!

1 構(gòu)造URL列表

每個(gè)月份的歷史天氣數(shù)據(jù)是通過一個(gè) Javascript 文件獲取的。因此,我們需要構(gòu)造帶爬取數(shù)據(jù)的 URL 列表,再批量爬取數(shù)據(jù)。

# 構(gòu)造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 批量下載數(shù)據(jù)

使用 requests 庫(kù)獲取 js 文件中的數(shù)據(jù),并存到 datas 變量中。

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

3 解析數(shù)據(jù)

我們從 js 文件獲取的數(shù)據(jù) json 格式存儲(chǔ)的,需要使用 demjson 對(duì)數(shù)據(jù)進(jìn)行解析。

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

4 將結(jié)果導(dǎo)入 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 結(jié)果展示

python爬蟲如何爬取天氣預(yù)報(bào)表

以上是python爬蟲如何爬取天氣預(yù)報(bào)表的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

分享名稱:python爬蟲如何爬取天氣預(yù)報(bào)表-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)鏈接:http://muchs.cn/article48/djijhp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)小程序開發(fā)、面包屑導(dǎo)航品牌網(wǎng)站建設(shè)、App設(shè)計(jì)、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)