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.開始---運(yùn)行---輸入命令:cmd
4.進(jìn)入到目錄(如:D:/simplejson)
5.運(yùn)行安裝文件:setup.py install
- 基于Python爬蟲采集天氣網(wǎng)實(shí)時(shí)信息
- Python爬蟲實(shí)戰(zhàn)之使用Scrapy爬取豆瓣圖片
- Python爬蟲之教你利用Scrapy爬取圖片
- python爬蟲如何解決圖片驗(yàn)證碼
- python爬蟲爬取圖片的簡(jiǎn)單代碼
- Python 爬蟲批量爬取網(wǎng)頁(yè)圖片保存到本地的實(shí)現(xiàn)代碼
- Python爬蟲抓取指定網(wǎng)頁(yè)圖片代碼實(shí)例
- Python爬蟲爬取煎蛋網(wǎng)圖片代碼實(shí)例
- Python3簡(jiǎn)單爬蟲抓取網(wǎng)頁(yè)圖片代碼實(shí)例
- Python爬蟲獲取圖片并下載保存至本地的實(shí)例
- python 爬取天氣網(wǎng)衛(wèi)星圖片
相關(guān)文章
Python機(jī)器學(xué)習(xí)庫(kù)scikit-learn入門開發(fā)示例
scikit-learn是一個(gè)開源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)算的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
用Python實(shí)現(xiàn)校園通知更新提醒功能
今天小編就為大家分享一篇用Python實(shí)現(xiàn)校園通知更新提醒功能,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-11-11
pytorch 實(shí)現(xiàn)模型不同層設(shè)置不同的學(xué)習(xí)率方式
今天小編就為大家分享一篇pytorch 實(shí)現(xiàn)模型不同層設(shè)置不同的學(xué)習(xí)率方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-01-01
利用python的socket發(fā)送http(s)請(qǐng)求方法示例
這篇文章主要給大家介紹了關(guān)于利用python的socket發(fā)送http(s)請(qǐng)求的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧2018-05-05
信號(hào)生成及DFT的python實(shí)現(xiàn)方式
今天小編就為大家分享一篇信號(hào)生成及DFT的python實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02

