用python爬取歷史天氣數(shù)據(jù)的方法示例-創(chuàng)新互聯(lián)

某天氣網(wǎng)站(www.數(shù)字.com)存有2011年至今的天氣數(shù)據(jù),有天看到一本爬蟲教材提到了爬取這些數(shù)據(jù)的方法,學(xué)習(xí)之,并加以改進(jìn)。

創(chuàng)新互聯(lián)建站堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的澄城網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

爬之前先分析url。左上有年份、月份的下拉選擇框,按F12,進(jìn)去看看能否找到真正的url:


很容易就找到了,左邊是儲存月度數(shù)據(jù)的js文件,右邊是文件源代碼,貌似json格式。

雙擊左邊js文件,地址欄內(nèi)出現(xiàn)了url:http://tianqi.數(shù)字.com/t/wea_history/js/54511_20161.js

url中的“54511”是城市代碼,“20161”是年份和月份代碼。下一步就是找到城市代碼列表,按城市+年份+月份構(gòu)造url列表,就能開始遍歷爬取了。

城市代碼也很誠實(shí),很快就找到了:

下一步得把城市名稱和代碼提取出來,構(gòu)造一個“城市名稱:城市代碼”的字典,或者由元組(城市名稱,城市代碼)組成的列表,供爬取時遍歷??紤]到正則提取時,構(gòu)造元組更便捷,就不做成字典了。

def getCity():
  html = reqs.get('https://tianqi.2345.com/js/citySelectData.js').content
  text = html.decode('gbk')
  city = re.findall('([1-5]\d{4})\-[A-Z]\s(.*?)\-\d{5}',text)  #只提取了地級市及以上城市的名稱和代碼,5以上的是縣級市  
  city = list(set(city))                    #去掉重復(fù)城市數(shù)據(jù)
  print('城市列表獲取成功')
  return city

網(wǎng)頁題目:用python爬取歷史天氣數(shù)據(jù)的方法示例-創(chuàng)新互聯(lián)
當(dāng)前URL:http://muchs.cn/article36/csjdsg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)動態(tài)網(wǎng)站、云服務(wù)器微信公眾號、面包屑導(dǎo)航全網(wǎng)營銷推廣

廣告

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

網(wǎng)站托管運(yùn)營