亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

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

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

        1 引言

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

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

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

        2 Python概述

        2.1 Python特點(diǎn)

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

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

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

        3 Python爬蟲(chóng)概述

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

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

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

        3.2 爬蟲(chóng)過(guò)程的順序圖

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

        圖1 爬蟲(chóng)過(guò)程的時(shí)序圖

        3.3 網(wǎng)絡(luò)爬蟲(chóng)的分類(lèi)

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

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

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

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

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

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

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

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

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

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

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

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

        通過(guò)中央氣象臺(tái)網(wǎng)站,找到臺(tái)風(fēng)報(bào)文如圖2所示。

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

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

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

        圖3 獲取報(bào)文信息存儲(chǔ)的Web地址

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

        圖4 臺(tái)風(fēng)報(bào)文地址

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

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

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

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

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

        def get_html(url, params):

        html = ' '

        #設(shè)置請(qǐng)求頭

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

        圖5 臺(tái)風(fēng)報(bào)文

        圖6 原始網(wǎng)頁(yè)

        圖7 日志信息

        5 結(jié)語(yǔ)

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

        猜你喜歡
        信息
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        展會(huì)信息
        信息超市
        展會(huì)信息
        展會(huì)信息
        展會(huì)信息
        展會(huì)信息
        展會(huì)信息
        信息
        健康信息
        祝您健康(1987年3期)1987-12-30 09:52:32
        中字乱码视频| 狠狠亚洲超碰狼人久久老人| 中文亚洲第一av一区二区| 国产成人久久精品激情91| 国产成人精品蜜芽视频| 亚洲av成熟国产精品一区二区| 亚洲youwu永久无码精品| 中国农村熟妇性视频| 国产成人精品免费久久久久| 日本道免费一区日韩精品| 亚洲成人av在线播放不卡| 人人澡人人妻人人爽人人蜜桃麻豆| 好吊妞无缓冲视频观看| 无码人妻精品一区二区三区下载| 无码片久久久天堂中文字幕| 日本超骚少妇熟妇视频| 无码人妻久久一区二区三区免费丨| 乌克兰粉嫩xxx极品hd| 久久aⅴ无码av免费一区| 国产精品自在在线午夜出白浆| 亚洲第一黄色免费网站| 欧美老妇交乱视频在线观看| 亚洲精品无码乱码成人| 国产目拍亚洲精品一区二区| 亚洲熟妇av一区二区三区hd| 亚洲av无码一区东京热| 亚洲av无码成人精品区在线观看| 亚洲人成网站www| 国产白浆一区二区在线| 又大又粗又爽18禁免费看| 一本大道东京热无码中字| 国产精品亚洲av一区二区三区 | 日本人妻少妇精品视频专区| 中文字幕第一页人妻丝袜| 人妻久久久一区二区三区| 无码日韩AⅤ一区二区三区| 日本一区二三区在线中文| 99久久精品免费看国产一区二区三区| 日韩成人无码| 午夜视频网址| 国产在线一区二区三区四区乱码|