999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Python爬蟲技術(shù)抓取臺風(fēng)報文的研究與實(shí)現(xiàn)

2022-06-15 03:15:54陳瓊鶯施蔚然鄭玉蘭馮招程
電腦與電信 2022年4期
關(guān)鍵詞:信息

陳瓊鶯 施蔚然 鄭玉蘭 馮招程

(福建省氣象信息中心,福建 福州 350001)

1 引言

由于臺風(fēng)過境時一般會出現(xiàn)狂風(fēng)暴雨天氣[1],造成莊稼摧毀、山體滑坡、各種房屋摧毀及倒塌等[2-3],因此,提高預(yù)報臺風(fēng)精確度迫在眉睫。

根據(jù)臺風(fēng)產(chǎn)生的時間、風(fēng)速、移向、強(qiáng)度、中心位置、最大風(fēng)速、移動速度等觀測數(shù)據(jù)形成臺風(fēng)報文。臺風(fēng)報文中的數(shù)據(jù),能預(yù)測臺風(fēng)的路徑及臺風(fēng)眼位置,因此臺風(fēng)報文是提高臺風(fēng)預(yù)報準(zhǔn)確性的不可或缺的數(shù)據(jù)。中央氣象臺根據(jù)臺風(fēng)起始的發(fā)展變化,在中央氣象臺網(wǎng)頁中實(shí)時發(fā)布臺風(fēng)報文。目前福建氣象局無法實(shí)時抓取中央氣象臺網(wǎng)頁中的臺風(fēng)報文數(shù)據(jù),同時也缺乏豐富的臺風(fēng)報文庫,造成許多臺風(fēng)報文無法很好地在業(yè)務(wù)科研上使用。臺風(fēng)報文資料的不齊全是影響臺風(fēng)預(yù)報能力的主要因素。提高臺風(fēng)報文的首要工作是收集臺風(fēng)報文資料。

在中央氣象臺發(fā)布的臺風(fēng)報文網(wǎng)頁中,如何對網(wǎng)頁數(shù)據(jù)進(jìn)行抓取,并快速分析獲取的資料中哪些是臺風(fēng)資料是我們要解決的問題。現(xiàn)代網(wǎng)頁中都使用了搜索引擎功能,用戶根據(jù)自己所需獲取信息的關(guān)鍵字、關(guān)鍵詞在網(wǎng)頁中搜索,就能獲其取所要的信息。由于爬蟲技術(shù)是搜索引擎的核心技術(shù),其在網(wǎng)頁檢索中發(fā)揮了重要作用,因此對爬蟲技術(shù)進(jìn)行研究并利用其實(shí)現(xiàn)臺風(fēng)報文抓取具有重要意義。

2 Python概述

2.1 Python特點(diǎn)

Python是一種具有解釋性和交互性的跨平臺的高級編程語言[4]。Python簡單易學(xué)易用,擁有許多標(biāo)準(zhǔn)庫,在UNIX、Macintosh和Windows平臺上具有很好的兼容性。

2.2 Python技術(shù)特點(diǎn)分析

網(wǎng)絡(luò)爬蟲技術(shù)已經(jīng)廣泛應(yīng)用在互聯(lián)網(wǎng)領(lǐng)域中,搜索引擎運(yùn)用網(wǎng)絡(luò)爬蟲抓取網(wǎng)頁信息、視頻、圖片、文檔等資源,利用索引技術(shù)組織這些信息,供用戶進(jìn)行搜索。Python網(wǎng)絡(luò)功能非常強(qiáng)大,常用來實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲,常用框架有g(shù)rab網(wǎng)絡(luò)爬蟲框架(基于pycurl/multicur)、scrapy網(wǎng)絡(luò)爬蟲框架(基于twisted)、pyspider爬蟲系統(tǒng)、cola分布式爬蟲框架、portia可視化爬蟲。由于Python的爬蟲技術(shù)擁有強(qiáng)大的功能,可以在短時間內(nèi)實(shí)現(xiàn)各類程序的編寫任務(wù)。此外,現(xiàn)代科學(xué)技術(shù)的飛快發(fā)展,為Python提供了技術(shù)支撐,利用Python的網(wǎng)絡(luò)能力,讓爬蟲在互聯(lián)網(wǎng)各種數(shù)據(jù)信息中進(jìn)行搜索,可使有效的信息得到充分利用。

3 Python爬蟲概述

3.1 爬蟲的基本結(jié)構(gòu)

爬蟲是一種自動抓取萬維網(wǎng)信息的腳本,從萬維網(wǎng)上獲取用戶需要的信息。網(wǎng)絡(luò)爬蟲可以自主遍歷采集網(wǎng)頁上的信息。網(wǎng)絡(luò)爬蟲最重要的作用就是在互聯(lián)網(wǎng)的大數(shù)據(jù)中爬取到有效的信息,并將有效的信息數(shù)據(jù)存儲到本地數(shù)據(jù)庫中。

Python爬蟲[5]框架主要是由爬蟲調(diào)度器、URL管理器、網(wǎng)頁下載器、網(wǎng)頁解析器、信息采集器組成。其中調(diào)度器是實(shí)現(xiàn)協(xié)調(diào)網(wǎng)頁下載器、網(wǎng)頁解析器、URL管理器之間的運(yùn)行。URL管理器主要包含已獲取的URL地址和待獲取的URL地址,避免重復(fù)抓取URL和循環(huán)抓取URL,URL管理器主要是通過內(nèi)存、數(shù)據(jù)庫、緩存數(shù)據(jù)庫三種方式來實(shí)現(xiàn)的。網(wǎng)頁下載器是根據(jù)傳入的URL地址來下載網(wǎng)頁內(nèi)容,將網(wǎng)頁內(nèi)容轉(zhuǎn)變?yōu)槲谋荆S玫木W(wǎng)頁下載器有urllib。調(diào)度器將種子提供的URL進(jìn)行下載,然后下載器從網(wǎng)上獲取頁面信息并發(fā)送至信息采集器,提取器根據(jù)信息提取指令獲取信息,然后將下一級URL發(fā)送到一個等待隊(duì)列,等待隊(duì)列提交重載的URL,過濾和排序操作后進(jìn)入列表,等待調(diào)度器調(diào)用。

3.2 爬蟲過程的順序圖

網(wǎng)絡(luò)爬蟲的時序圖如圖1所示。具體的爬蟲過程描述如下:首先調(diào)度端啟動爬蟲,詢問URL管理器是否有要爬取的URL。URL管理器將要爬取的URL發(fā)給調(diào)度端,調(diào)度端根據(jù)獲取的URL,利用網(wǎng)頁下載器下載URL對應(yīng)的頁面內(nèi)容。網(wǎng)頁下載器將下載好的內(nèi)容發(fā)給網(wǎng)頁解析器來解析,返回解析好的內(nèi)容和更新URL列表,獲取有效的數(shù)據(jù)。

圖1 爬蟲過程的時序圖

3.3 網(wǎng)絡(luò)爬蟲的分類

網(wǎng)絡(luò)爬蟲[6]根據(jù)不同的實(shí)現(xiàn)技術(shù)手段,可以大致分為通用網(wǎng)絡(luò)爬蟲、聚焦網(wǎng)絡(luò)爬蟲、增量網(wǎng)絡(luò)爬蟲。通用網(wǎng)絡(luò)爬蟲也稱為全網(wǎng)爬蟲。通用網(wǎng)絡(luò)爬蟲是從網(wǎng)絡(luò)各個領(lǐng)域的網(wǎng)頁中抓取與主題相關(guān)的所有文檔和鏈接。通用網(wǎng)絡(luò)爬蟲需要消耗大量的時間和磁盤空間。

聚焦網(wǎng)絡(luò)爬蟲也稱為主題網(wǎng)絡(luò)爬蟲。聚焦爬蟲只爬取特定的網(wǎng)頁,與通用網(wǎng)絡(luò)爬蟲相比聚焦爬蟲節(jié)省大量的時間、磁盤空間和網(wǎng)絡(luò)資源,聚焦爬蟲與通用爬蟲的區(qū)別在于增加了過濾網(wǎng)頁鏈接的兩個模塊:網(wǎng)頁決策模塊和URL鏈接優(yōu)先級排序模塊。

網(wǎng)頁決策模塊:當(dāng)爬蟲抓取到特定內(nèi)容時,網(wǎng)頁相關(guān)性評估器開始比較網(wǎng)頁中的內(nèi)容與預(yù)先給定的主題的相關(guān)性。如果網(wǎng)頁的相關(guān)性沒有達(dá)到之前設(shè)定的閾值,則會放棄該網(wǎng)頁,以保持獲取網(wǎng)頁的高精度。

URL鏈接優(yōu)先級排序模塊:該模塊主要用于比較解析的URL與給定主題的相關(guān)程度。該模塊根據(jù)鏈接對內(nèi)容的權(quán)限和鏈接的引用次數(shù)對鏈接進(jìn)行優(yōu)先級排序。按優(yōu)先級排序并刪除優(yōu)先級過低的鏈接。

增量爬蟲與一般爬蟲的區(qū)別主要在于搜索策略不同。對于一般爬蟲來說,一次遍歷完成后,需要更新數(shù)據(jù),按照之前的遍歷形式對全網(wǎng)進(jìn)行新的遍歷,然后替換之前的結(jié)果。增量爬蟲采用了一種新的機(jī)制來更新數(shù)據(jù)。增量式爬蟲只會在需要的時候爬取新產(chǎn)生或發(fā)生更新的頁面,并不重新下載沒有發(fā)生變化的頁面,可有效減少數(shù)據(jù)下載量,及時更新已爬行的網(wǎng)頁,可以提高爬取效率,減少對物理內(nèi)存的占用,提高數(shù)據(jù)更新率。

3.4 網(wǎng)頁獲取與分析

爬蟲的工作原理是模擬瀏覽器發(fā)出HTTP請求,發(fā)送至Web服務(wù)器。爬蟲獲取Web服務(wù)器響應(yīng)后,對網(wǎng)頁內(nèi)容進(jìn)行分析和存儲,執(zhí)行爬取任務(wù)。

網(wǎng)頁解析主要是網(wǎng)頁去噪的過程。在Internet中,網(wǎng)頁的各種信息都存儲在HTML的框架中。網(wǎng)頁去噪主要是網(wǎng)頁內(nèi)容文本的提取。主題爬蟲需要分析解析頁面的HTML結(jié)構(gòu)來提取搜索用戶所需的信息。常用的方法包括通過Beautiful Soup解析HTML結(jié)構(gòu)和使用正則表達(dá)式提取文本數(shù)據(jù)。

3.5 數(shù)據(jù)存儲

爬蟲獲取數(shù)據(jù)的數(shù)據(jù),一般采用兩種存儲方式:保存至本地文件或存儲至數(shù)據(jù)庫,通常量少的數(shù)據(jù)一般保存至本地文件,數(shù)據(jù)量大的數(shù)據(jù)一般存儲到數(shù)據(jù)庫中。

4 基于Python抓取臺風(fēng)報文的實(shí)現(xiàn)

4.1 網(wǎng)站頁面分析

通過中央氣象臺網(wǎng)站,找到臺風(fēng)報文如圖2所示。

圖2 中央氣象臺網(wǎng)站

由圖2可知臺風(fēng)報文的關(guān)鍵詞中頭部設(shè)置為ZCZC,尾部設(shè)置為NNNN。

在網(wǎng)頁調(diào)試器中,任意選擇一個時間(例2021/12/21 06:21),network中會增加一條為json存儲的地址的調(diào)用記錄,詳細(xì)如圖3所示。

圖3 獲取報文信息存儲的Web地址

通過圖3可以得到模擬點(diǎn)擊的鏈接參數(shù)為http://www.nmc.cn/f/rest/GetContent?dataId =。提取關(guān)鍵字為SEVP_NMC_TCMO_SFER_ETCT_ACHN_L88_P9。選擇不同時間network的調(diào)用記錄如圖4所示。

圖4 臺風(fēng)報文地址

從圖4中可知臺風(fēng)報文的Web地址并沒有呈現(xiàn)某種規(guī)律的變化,因此本系統(tǒng)采用固定的時間間隔去抓取數(shù)據(jù)(默認(rèn)時間是每分鐘,可以根據(jù)工作需要在頁面上設(shè)置抓取的時間間隔),并判斷地址中的信息是否有效,從而完成數(shù)據(jù)爬取任務(wù)。

4.2 系統(tǒng)實(shí)現(xiàn)

在基于Python抓取臺風(fēng)報文的軟件中,本系統(tǒng)設(shè)計了定時提取和手工提取兩種功能,定時提取可以根據(jù)需要設(shè)置定時周期,默認(rèn)的定時周期是每分鐘,本系統(tǒng)利用Python提供的一種常用的數(shù)據(jù)結(jié)構(gòu)字典來實(shí)現(xiàn)重置字典功能。本系統(tǒng)中設(shè)有兩個字典:報文地址字典和報文數(shù)據(jù)字典,用于防止重復(fù)解析和防止重復(fù)入庫,重置字典即清空以上兩個字典。當(dāng)點(diǎn)擊重置字典按鈕就會重新獲取報文,設(shè)置配置功能可以根據(jù)需要對存盤的路徑、定時提取時間、報文關(guān)鍵詞進(jìn)行設(shè)置。本系統(tǒng)的導(dǎo)航存盤是用打開存儲文件夾技術(shù)實(shí)現(xiàn)的,點(diǎn)擊導(dǎo)航存盤按鈕就會進(jìn)入臺風(fēng)報文存放的目錄中,方便用戶查找文件。下面是實(shí)現(xiàn)爬蟲程序設(shè)計的關(guān)鍵代碼:

import requests#導(dǎo)入requests庫

#獲取網(wǎng)頁內(nèi)容

def get_html(url, params):

html = ' '

#設(shè)置請求頭

http_headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'}

try:

r= requests.get(url=url,params=params,headers=http_headers, timeout=5)

r.encoding = 'utf-8'

html = r.text

except Exception as e:

print(e)

return html

代碼解析:requests庫的get()方法中的第二個參數(shù)params是臺風(fēng)報文,第一個參數(shù)url是中央氣象臺發(fā)布的網(wǎng)址:http://www.nmc.cn/publish/typhoon/message.html,第三個參數(shù)headers是用來向?yàn)g覽器發(fā)出請求,它的參數(shù)是字典類型,表示的是用戶代理信息。用戶代理(user-agent)是瀏覽器客戶端與服務(wù)器交互時的重要信息之一,用于幫助網(wǎng)站識別請求用戶的瀏覽器類別,以便于網(wǎng)站發(fā)送相應(yīng)的網(wǎng)頁數(shù)據(jù),第四個參數(shù)timeout是請求網(wǎng)面數(shù)據(jù),如果5秒內(nèi)沒返回抓取的報文信息就會報出錯信息。在基于Python抓取臺風(fēng)報文抓取軟件中顯示獲取到的臺風(fēng)報文如圖5所示,原始網(wǎng)頁如圖6所示,執(zhí)行日志如圖7所示。

圖5 臺風(fēng)報文

圖6 原始網(wǎng)頁

圖7 日志信息

5 結(jié)語

基于Python臺風(fēng)報文抓取系統(tǒng)能夠定時提取中央氣象臺網(wǎng)頁中的臺風(fēng)報文,為福建氣象局提供臺風(fēng)的當(dāng)前位置、氣壓、風(fēng)速、臺風(fēng)目前移速、預(yù)測未來的位置與強(qiáng)度、中心位置等信息,有利于福建氣象臺日常預(yù)報及業(yè)務(wù)的順利開展,以及對臺風(fēng)報文進(jìn)行更深入的研究。在大數(shù)據(jù)時代基于Python爬蟲技術(shù)的氣象信息挖掘具有重要應(yīng)用價值。

猜你喜歡
信息
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
信息超市
展會信息
展會信息
展會信息
展會信息
展會信息
信息
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 亚洲成在人线av品善网好看| 日本免费福利视频| 国产香蕉在线| 农村乱人伦一区二区| 欧美一区二区啪啪| 新SSS无码手机在线观看| 在线网站18禁| 日本国产在线| 日韩亚洲综合在线| 国产99在线观看| a毛片在线| 亚洲免费黄色网| 国产在线自乱拍播放| 国产免费久久精品99re不卡| 18黑白丝水手服自慰喷水网站| 亚洲精品你懂的| 欧美性天天| 91九色视频网| 久久频这里精品99香蕉久网址| 精品少妇人妻无码久久| 东京热高清无码精品| 国产精品蜜芽在线观看| 欧美精品伊人久久| 午夜a级毛片| 亚洲天堂福利视频| 成人精品免费视频| 国产欧美日韩va另类在线播放| 欧美成人看片一区二区三区 | 日韩毛片免费观看| 亚洲狠狠婷婷综合久久久久| 国产玖玖玖精品视频| 丁香五月激情图片| 欧美亚洲国产一区| 欧洲日本亚洲中文字幕| 欧美69视频在线| 国模粉嫩小泬视频在线观看| 91系列在线观看| 四虎影视永久在线精品| 99久久人妻精品免费二区| 五月激激激综合网色播免费| 99尹人香蕉国产免费天天拍| 99久久精品视香蕉蕉| 午夜国产精品视频| 国产精品片在线观看手机版| 丁香六月激情婷婷| 九色在线观看视频| 99精品免费欧美成人小视频| 欧美中文字幕在线播放| 天堂网亚洲系列亚洲系列| 国产一区二区免费播放| 欧美日韩国产一级| 国产91熟女高潮一区二区| 免费一级成人毛片| 久久精品国产精品青草app| 毛片大全免费观看| 久热99这里只有精品视频6| 成人国产精品网站在线看| 欧美国产日产一区二区| 国产精品成人观看视频国产| 九九热视频精品在线| 中文字幕亚洲综久久2021| 欧美性久久久久| 精品午夜国产福利观看| 国产精品护士| 91精品国产自产在线观看| 亚洲一区二区三区国产精品| 麻豆a级片| 国产主播一区二区三区| 四虎在线观看视频高清无码| 91福利一区二区三区| 成人字幕网视频在线观看| 日本免费一级视频| 欧美黄色网站在线看| 国产视频自拍一区| 欧美成人综合在线| 91成人在线观看| 日本三级黄在线观看| 在线无码av一区二区三区| 亚洲欧美h| 欧美一级大片在线观看| 国产精品福利一区二区久久| 色老头综合网|