分享乙個天氣歷史資料的採集指令碼

2022-05-01 06:15:09 字數 2610 閱讀 6638

最近乙個專案中需要用到過往的天氣資料, 我找到了天氣後報這個** (www.tianqihoubao.com), 並在ss中完成了相關採集, 和大家分享一下.

首先分析這個**提供了兩種資訊:

1. 省市關係

2. 天氣記錄

對應的我們建立資料結構:

[serializable]

public

class

province

[serializable]

public

class

city

[serializable]

public

class

weatherdataset

[serializable]

public

class

weatherdata

>> **一共提供34個直轄市/省/特區的天氣資訊,完整的列表在: 

對應的採集語句是:

var list = default.selectnodes("

#content dt a

");

>> 每個省都有下轄的城市列表,如: 

對應的採集語句是:

var list = default.selectnodes("

#content dd a

");

>> 每個城市都有乙個歷史天氣記錄列表,如: 

對應的採集語句是:

default.selectnodes("

#content>div.pcity a

");

>> 進入每條歷史天氣記錄, 就可以得到當月的天氣資料了:對應的採集語句是:

var list = default.selectnodes("

#content>table.b tr:gt(0)");

foreach(var item in

list)

將這些語句分別包裝為方法, 並將結果繫結到最開始定義的資料結構中:

public listgetprovincelist()  //

獲取直轄市/省/特區

public listgetcitylist(province province) //

獲取城市列表

public listgetweatherdataset(city city) //

獲取指定城市的天氣歷史記錄集

public listgetweatherdata(weatherdataset ds) //

獲取天氣歷史資料

>> 完整的指令碼:(複製到ss中即可直接執行)

public

void

run()

var cl = getcitylist(pl[1

]);

foreach(var c in

cl)

var ds = getweatherdataset(cl[1

]);

foreach(var d in

ds)

var dl = getweatherdata(ds[0

]);

foreach(var d in

dl)

} public listgetprovincelist()

return

result;

}public listgetcitylist(province province)

return

result;

}public listgetweatherdataset(city city)

return

result;

}public listgetweatherdata(weatherdataset ds)

return

result;

}[serializable]

public

class

province

[serializable]

public

class

city

[serializable]

public

class

weatherdataset

[serializable]

public

class

weatherdata

view code

>> 執行效果:

分享乙個ssh打通的指令碼

分享乙個ssh打通的指令碼,經過測試可用。目前只能單向打通,且要求本地使用者名為admin 寫入 可簡單修改 本身只是個人使用,故通用性 異常情況考慮不多,大家可以做個參考。補充一點,important tip authorized keys檔案的許可權很重要,如果設定為777,那麼登入的時候,還是...

乙個shell指令碼顯示當地天氣資訊

bin bash name wallther license gplv3 version 20090511 此指令碼需要安裝 w3m 和 imagemagick 城市 留空可自動檢測 自動檢測不一定精確 城市 可在 上查詢,是個5位的數字 受bones7456和wenbob的天氣指令碼啟發。因為原有...

乙個遠端資料採集系統的實現

乙個遠端資料採集系統的實現,包括 遠端資料採集,gprs資訊傳輸,伺服器資料處理,瀏覽器資料展現和操作。遠端資料採集 採集天然河道水位資料,採用成品壓力式感測器,沒有採集單元 rtu gprs dtu的rs485介面直接接感測器rs485介面。電源 25w太陽能電池板 充放電控制器 25ah免維護鉛...