python解析中國(guó)天氣網(wǎng)的天氣數(shù)據(jù)
使用方法:terminal中輸入
北京6天的天氣數(shù)據(jù) json格式
#weather.py
import urllib
import re
import simplejson
import sys
if len(sys.argv) != 2:
print 'please enter: python ' + sys.argv[0] + ' <url>'
exit(0)
url = sys.argv[1];
def readurlPageContent(url):#獲取頁(yè)面的所有數(shù)據(jù) 逐行讀取
webpage = urllib.urlopen(url);
line = webpage.readline();
data = ''
while line:
data = data + line.strip(); #去除每行兩邊的的空格
line = webpage.readline();
return data
def getDatabody(data):
reg = re.compile(r'(<div class=\"weatherYubaoBox\">(?:(?!<div)(?!</div).)*</div>)');
matchs = reg.findall(data,re.I);
if len(matchs) > 0:
return matchs[0]
return None
def getSixDayWeather(data):
regs = re.compile(r'>((?:(?!<)(?!>)(?!var).)+)<');
datas = regs.findall(data)
if len(datas) > 12:
datas = datas[12:len(datas)-7];#提取其中的78項(xiàng) 即后面6天的天氣數(shù)據(jù) 每天相關(guān)的信息有13個(gè)
return datas
return None
data = readurlPageContent(url);
match_data = getDatabody(data)
if match_data == None :
print 'get weather data fail'
exit(0)
weathers_data = getSixDayWeather(match_data)
if weathers_data == None:
print 'get six day info fail'
exit(0)
count = len(weathers_data);
groups_item_count = count / 6;
weathers = {};
groups = [];
start = 0
for item in weathers_data :
if (start % groups_item_count) == 0:
groups = [];
weathers[('day'+str(start/groups_item_count + 1))] = groups;
groups.append(item)
start = start + 1
print simplejson.dumps(weathers, encoding='UTF-8', ensure_ascii=False)
注:本文中使用了第三方JSON庫(kù)simplejson,安裝方法參考下面:
1.下載:http://pypi.python.org/pypi/simplejson/ ,文件為壓縮文件
2.解壓:可以直接右鍵:解壓文件.例如:D:/simplejson
3.開(kāi)始---運(yùn)行---輸入命令:cmd
4.進(jìn)入到目錄(如:D:/simplejson)
5.運(yùn)行安裝文件:setup.py install
- 基于Python爬蟲(chóng)采集天氣網(wǎng)實(shí)時(shí)信息
- Python爬蟲(chóng)實(shí)戰(zhàn)之使用Scrapy爬取豆瓣圖片
- Python爬蟲(chóng)之教你利用Scrapy爬取圖片
- python爬蟲(chóng)如何解決圖片驗(yàn)證碼
- python爬蟲(chóng)爬取圖片的簡(jiǎn)單代碼
- Python 爬蟲(chóng)批量爬取網(wǎng)頁(yè)圖片保存到本地的實(shí)現(xiàn)代碼
- Python爬蟲(chóng)抓取指定網(wǎng)頁(yè)圖片代碼實(shí)例
- Python爬蟲(chóng)爬取煎蛋網(wǎng)圖片代碼實(shí)例
- Python3簡(jiǎn)單爬蟲(chóng)抓取網(wǎng)頁(yè)圖片代碼實(shí)例
- Python爬蟲(chóng)獲取圖片并下載保存至本地的實(shí)例
- python 爬取天氣網(wǎng)衛(wèi)星圖片
相關(guān)文章
Python機(jī)器學(xué)習(xí)庫(kù)scikit-learn入門(mén)開(kāi)發(fā)示例
scikit-learn是一個(gè)開(kāi)源Python語(yǔ)言機(jī)器學(xué)習(xí)工具包,它涵蓋了幾乎所有主流機(jī)器學(xué)習(xí)算法的實(shí)現(xiàn),并且提供了一致的調(diào)用接口。它基于Numpy和scipy等Python數(shù)值計(jì)算庫(kù),提供了高效的算法實(shí)現(xiàn)2022-07-07純python進(jìn)行矩陣的相乘運(yùn)算的方法示例
這篇文章主要介紹了純python進(jìn)行矩陣的相乘運(yùn)算的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07用Python實(shí)現(xiàn)校園通知更新提醒功能
今天小編就為大家分享一篇用Python實(shí)現(xiàn)校園通知更新提醒功能,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11pytorch 實(shí)現(xiàn)模型不同層設(shè)置不同的學(xué)習(xí)率方式
今天小編就為大家分享一篇pytorch 實(shí)現(xiàn)模型不同層設(shè)置不同的學(xué)習(xí)率方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01利用python的socket發(fā)送http(s)請(qǐng)求方法示例
這篇文章主要給大家介紹了關(guān)于利用python的socket發(fā)送http(s)請(qǐng)求的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧2018-05-05信號(hào)生成及DFT的python實(shí)現(xiàn)方式
今天小編就為大家分享一篇信號(hào)生成及DFT的python實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02Linux下通過(guò)python獲取本機(jī)ip方法示例
這篇文章主要給大家介紹了關(guān)于在Linux下通過(guò)python獲取本機(jī)ip的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09Python中os模塊的使用及文件對(duì)象的讀寫(xiě)詳解
這篇文章主要介紹了Python中os模塊的使用及文件對(duì)象的讀寫(xiě)詳解,Python?open()?方法用于打開(kāi)一個(gè)文件,并創(chuàng)建返回文件對(duì)象,在對(duì)文件進(jìn)行處理過(guò)程都需要使用到這個(gè)函數(shù),如果該文件無(wú)法被打開(kāi),會(huì)拋出?OSError,需要的朋友可以參考下2023-08-08