欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python解析中國天氣網(wǎng)的天氣數(shù)據(jù)

 更新時間:2014年03月21日 09:01:16   作者:  
最近學(xué)習(xí)python 感覺這門腳本語言十分靈活 而且功能十分強大 尤其是他re庫用于正則匹配十分強大,寫了個例子解析中國天氣網(wǎng)

使用方法:terminal中輸入

復(fù)制代碼 代碼如下:
python weather.py http://www.weather.com.cn/weather/101010100.shtml

北京6天的天氣數(shù)據(jù) json格式

復(fù)制代碼 代碼如下:
#coding=utf-8 
#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):#獲取頁面的所有數(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項 即后面6天的天氣數(shù)據(jù) 每天相關(guān)的信息有13個 

        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庫simplejson,安裝方法參考下面:
1.下載:http://pypi.python.org/pypi/simplejson/ ,文件為壓縮文件
2.解壓:可以直接右鍵:解壓文件.例如:D:/simplejson
3.開始---運行---輸入命令:cmd
4.進入到目錄(如:D:/simplejson)

復(fù)制代碼 代碼如下:
    cd D:/simplejson

5.運行安裝文件:setup.py install

相關(guān)文章

  • Python機器學(xué)習(xí)庫scikit-learn入門開發(fā)示例

    Python機器學(xué)習(xí)庫scikit-learn入門開發(fā)示例

    scikit-learn是一個開源Python語言機器學(xué)習(xí)工具包,它涵蓋了幾乎所有主流機器學(xué)習(xí)算法的實現(xiàn),并且提供了一致的調(diào)用接口。它基于Numpy和scipy等Python數(shù)值計算庫,提供了高效的算法實現(xiàn)
    2022-07-07
  • 純python進行矩陣的相乘運算的方法示例

    純python進行矩陣的相乘運算的方法示例

    這篇文章主要介紹了純python進行矩陣的相乘運算的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • python運行腳本文件的三種方法實例

    python運行腳本文件的三種方法實例

    在計算中,腳本一詞用于指代包含訂單邏輯序列的文件或批處理文件,下面這篇文章主要給大家介紹了關(guān)于python運行腳本文件的三種方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • 用Python實現(xiàn)校園通知更新提醒功能

    用Python實現(xiàn)校園通知更新提醒功能

    今天小編就為大家分享一篇用Python實現(xiàn)校園通知更新提醒功能,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • pytorch 實現(xiàn)模型不同層設(shè)置不同的學(xué)習(xí)率方式

    pytorch 實現(xiàn)模型不同層設(shè)置不同的學(xué)習(xí)率方式

    今天小編就為大家分享一篇pytorch 實現(xiàn)模型不同層設(shè)置不同的學(xué)習(xí)率方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 利用python的socket發(fā)送http(s)請求方法示例

    利用python的socket發(fā)送http(s)請求方法示例

    這篇文章主要給大家介紹了關(guān)于利用python的socket發(fā)送http(s)請求的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧
    2018-05-05
  • 信號生成及DFT的python實現(xiàn)方式

    信號生成及DFT的python實現(xiàn)方式

    今天小編就為大家分享一篇信號生成及DFT的python實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • selenium環(huán)境搭建及基本元素定位方式詳解

    selenium環(huán)境搭建及基本元素定位方式詳解

    selenium最初是一個自動化測試工具,而爬蟲中使用它主要是為了解決requests無法執(zhí)行javaScript代碼的問題,這篇文章主要介紹了selenium環(huán)境搭建及基本元素定位方式,需要的朋友可以參考下
    2023-04-04
  • Linux下通過python獲取本機ip方法示例

    Linux下通過python獲取本機ip方法示例

    這篇文章主要給大家介紹了關(guān)于在Linux下通過python獲取本機ip的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Python中os模塊的使用及文件對象的讀寫詳解

    Python中os模塊的使用及文件對象的讀寫詳解

    這篇文章主要介紹了Python中os模塊的使用及文件對象的讀寫詳解,Python?open()?方法用于打開一個文件,并創(chuàng)建返回文件對象,在對文件進行處理過程都需要使用到這個函數(shù),如果該文件無法被打開,會拋出?OSError,需要的朋友可以參考下
    2023-08-08

最新評論