国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Scrapy在氣象綜合業(yè)務(wù)實(shí)時(shí)監(jiān)控系統(tǒng)中獲取第三方數(shù)據(jù)的應(yīng)用

2019-01-06 03:36李曉煬
無(wú)線互聯(lián)科技 2019年21期
關(guān)鍵詞:爬蟲(chóng)

李曉煬

摘? ?要:人們對(duì)業(yè)務(wù)運(yùn)行質(zhì)量與效率的要求越來(lái)越高,監(jiān)控產(chǎn)品多樣化的趨勢(shì)越來(lái)越大,包含的系統(tǒng)越來(lái)越多。因此,將眾多相互獨(dú)立卻又有內(nèi)在聯(lián)系的各個(gè)子系統(tǒng)統(tǒng)一管理,將是監(jiān)控平臺(tái)的發(fā)展方向。氣象綜合業(yè)務(wù)實(shí)時(shí)監(jiān)控系統(tǒng)的建設(shè),有利于建立集中管理的氣象綜合業(yè)務(wù)實(shí)時(shí)監(jiān)控和展示平臺(tái),推動(dòng)氣象業(yè)務(wù)綜合化、集約化發(fā)展,有利于提高業(yè)務(wù)、管理的現(xiàn)代化和信息化水平。為構(gòu)建一體化、可視化、開(kāi)放的氣象綜合業(yè)務(wù)實(shí)時(shí)監(jiān)控系統(tǒng)接入第三方數(shù)據(jù),文章提供了基于Scrapy框架的信息提取,實(shí)現(xiàn)集中監(jiān)控、告警、運(yùn)維一體化,提高業(yè)務(wù)運(yùn)維保障能力。

關(guān)鍵詞:氣象綜合業(yè)務(wù);實(shí)時(shí)監(jiān)控系統(tǒng);Scrapy;爬蟲(chóng)

1? ? 氣象綜合業(yè)務(wù)實(shí)時(shí)監(jiān)控系統(tǒng)介紹

氣象綜合業(yè)務(wù)實(shí)時(shí)監(jiān)控系統(tǒng)是基于氣象業(yè)務(wù)監(jiān)控系統(tǒng)的現(xiàn)狀,詳細(xì)剖析了現(xiàn)有監(jiān)控系統(tǒng)存在的問(wèn)題和發(fā)展需求,通過(guò)調(diào)研國(guó)內(nèi)外相關(guān)行業(yè)監(jiān)控系統(tǒng)設(shè)計(jì),結(jié)合氣象信息化和業(yè)務(wù)現(xiàn)代化的目標(biāo),提出氣象綜合業(yè)務(wù)實(shí)時(shí)監(jiān)控系統(tǒng)設(shè)計(jì)思路。采用大數(shù)據(jù)、云計(jì)算技術(shù)建立開(kāi)放、高效、可擴(kuò)展的監(jiān)控系統(tǒng)框架,通過(guò)規(guī)范化的監(jiān)視信息采集和控制接口,接入觀測(cè)、信息、預(yù)報(bào)、服務(wù)和政務(wù)管理等氣象業(yè)務(wù)“全流程、全要素、全過(guò)程”的監(jiān)視信息,實(shí)現(xiàn)對(duì)氣象綜合業(yè)務(wù)的實(shí)時(shí)監(jiān)視和控制[1]。

現(xiàn)有業(yè)務(wù)多為獨(dú)立建設(shè),數(shù)據(jù)交換和共享困難,使用和維護(hù)個(gè)性化,各系統(tǒng)數(shù)據(jù)存儲(chǔ)形式各異,查看不同的數(shù)據(jù)需要登錄不同的系統(tǒng)。氣象綜合業(yè)務(wù)實(shí)時(shí)監(jiān)控提供了基礎(chǔ)資源監(jiān)控信息接入接口,對(duì)于不提供應(yīng)用程序編程接口(Application Programming Interface,API)或者其他可編程訪問(wèn)機(jī)制的應(yīng)用,可通過(guò)Scrapy獲取基礎(chǔ)資源的監(jiān)控信息,并由接口接入綜合業(yè)務(wù)實(shí)時(shí)監(jiān)控,實(shí)現(xiàn)資源統(tǒng)一采集與存儲(chǔ)、運(yùn)行監(jiān)控等功能。

2? ? Scrapy的概念和內(nèi)涵

Scrapy是Python開(kāi)發(fā)的一個(gè)快速、高層次的屏幕抓取和Web抓取框架,提供了多種類型爬蟲(chóng)的基類,用于抓取Web站點(diǎn)并從頁(yè)面中提取結(jié)構(gòu)化的數(shù)據(jù)。底層為異步框架 twisted,具有并發(fā)的優(yōu)勢(shì)。Scrapy用途廣泛,可以用于數(shù)據(jù)挖掘、監(jiān)測(cè)和自動(dòng)化測(cè)試。

Scrapy框架主要由5大組件組成,分別是調(diào)度器(Scheduler)、下載器(Downloader)、爬蟲(chóng)(Spider)和管道(Item Pipeline)、Scrapy引擎(Scrapy Engine)。調(diào)度器負(fù)責(zé)調(diào)度抓取網(wǎng)頁(yè)的網(wǎng)址或鏈接,具有去重功能,避免重復(fù)作業(yè);下載器是建立在twisted高效的異步模型上,用于高速地下載網(wǎng)絡(luò)上的資源;爬蟲(chóng)由用戶自己定義,用于從特定的網(wǎng)頁(yè)提取自己需要的信息或者獲取需要進(jìn)一步分析的網(wǎng)頁(yè);管道用于處理爬蟲(chóng)提取的實(shí)體,可持久化實(shí)體、驗(yàn)證實(shí)體的有效性和清除不需要的信息;Scrapy引擎是整個(gè)框架的核心,用來(lái)控制調(diào)試器、下載器、爬蟲(chóng)。

對(duì)于數(shù)據(jù)量較大的站點(diǎn),可使用基于redis數(shù)據(jù)庫(kù)的組件scrapy-redis,啟動(dòng)多個(gè)spider工程,相互之間共享單個(gè)redis的request隊(duì)列,實(shí)現(xiàn)項(xiàng)目的分布式開(kāi)發(fā)和部署。

3? ? 數(shù)據(jù)提取應(yīng)用

3.1? 第三方數(shù)據(jù)接入分析

氣象綜合業(yè)務(wù)實(shí)時(shí)監(jiān)控系統(tǒng)接入基礎(chǔ)資源信息需要提交資源數(shù)據(jù)、性能數(shù)據(jù)以及狀態(tài)數(shù)據(jù)。對(duì)于將要接入的第三方數(shù)據(jù),首先需要確認(rèn)獲取信息的資源,再根據(jù)資源的性能值與狀態(tài)值創(chuàng)建合適且唯一的性能模型編碼及狀態(tài)模型編碼。性能模型與狀態(tài)模型對(duì)于不同的資源可以復(fù)用,但在傳入綜合業(yè)務(wù)實(shí)時(shí)監(jiān)控系統(tǒng)性能值與狀態(tài)值時(shí)需對(duì)應(yīng)指定資源的object值,資源的object值為提交資源數(shù)據(jù)時(shí)返回的item值。測(cè)試模型創(chuàng)建與數(shù)據(jù)接入時(shí)可以使用Postman軟件發(fā)起GET及POST請(qǐng)求。

Scrapy獲取數(shù)據(jù)前需要先對(duì)第三方應(yīng)用的頁(yè)面進(jìn)行分析。Fiddler等Web抓包軟件可以記錄客戶端和服務(wù)器之間的所有請(qǐng)求,可以針對(duì)特定的請(qǐng)求,分析請(qǐng)求數(shù)據(jù)、設(shè)置斷點(diǎn)、調(diào)試Web應(yīng)用、修改請(qǐng)求的數(shù)據(jù)。通過(guò)Web調(diào)試分析,獲取到相關(guān)的請(qǐng)求方式及地址后即可模擬瀏覽器發(fā)起請(qǐng)求,并對(duì)第三方應(yīng)用的響應(yīng)進(jìn)行處理,提取需要獲取的數(shù)據(jù)[2]。

以接入性能數(shù)據(jù)為例,metric為創(chuàng)建的性能模型編碼,object為提交的資源,value則為使用Scrapy獲取的具體性能值,狀態(tài)數(shù)據(jù)的接入與性能數(shù)據(jù)的接入一致。氣象綜合業(yè)務(wù)實(shí)時(shí)監(jiān)控系統(tǒng)接口接受POST請(qǐng)求的body體默認(rèn)為json格式,因此在使用Scrapy獲取到的數(shù)據(jù)需要生成json格式的數(shù)據(jù)落地保存或者直接調(diào)用接口傳入氣象綜合業(yè)務(wù)實(shí)時(shí)監(jiān)控系統(tǒng)。

3.2? 應(yīng)用

3.2.1? 系統(tǒng)登錄

Scrapy的基本請(qǐng)求流程是調(diào)用start_request方法遍歷start_urls列表。對(duì)于需要登錄的系統(tǒng),Scrapy需要重寫(xiě)start_requests方法GET登錄頁(yè)面的信息。獲取到登錄頁(yè)面的登錄信息后,用callback參數(shù)指定接下來(lái)執(zhí)行的登錄方法,使用POST方法將用戶名、密碼等f(wàn)ormdata傳給系統(tǒng)即可實(shí)現(xiàn)登錄。發(fā)起請(qǐng)求的header信息可以指定為瀏覽器的實(shí)際訪問(wèn)header。

驗(yàn)證登錄成功后,Scrapy可帶著登錄成功后Cookie值,訪問(wèn)需要被爬取數(shù)據(jù)的地址。

3.2.2? 數(shù)據(jù)提取

start_urls列表為Scrapy默認(rèn)爬取數(shù)據(jù)的地址列表,并將獲取的響應(yīng)傳給parse方法。該列表可由用戶根據(jù)需列出被爬取的頁(yè)面使用Spider類去獲取響應(yīng),也可調(diào)用CrawlSpider類根據(jù)鏈接的變化規(guī)則去自動(dòng)分析獲取鏈接。為避免超出爬取范圍,需指定allowed_domains。對(duì)于已經(jīng)爬取過(guò)的頁(yè)面,可設(shè)置dont_filter參數(shù)進(jìn)行去重。

在獲取的響應(yīng)頁(yè)面中,使用正則或者xpath等方法分析匹配需要獲取的值。在完成一個(gè)頁(yè)面的數(shù)據(jù)提取后,調(diào)用callback方法重新發(fā)送下一頁(yè)面的請(qǐng)求。

3.2.3? 數(shù)據(jù)處理

在獲取到的數(shù)據(jù)中,可能存在與實(shí)際需求不符的數(shù)據(jù),例如編碼及存在其他字符等問(wèn)題,此時(shí)可以使用Scrapy框架中的Pipeline對(duì)數(shù)據(jù)進(jìn)行處理。調(diào)用的Pipeline需要在Scrapy項(xiàng)目對(duì)應(yīng)的settings.py文件中進(jìn)行設(shè)置。

數(shù)據(jù)處理完成后,即可按照接入氣象綜合業(yè)務(wù)實(shí)時(shí)監(jiān)控系統(tǒng)的規(guī)則,保存為指定的json格式調(diào)用接口進(jìn)行接入。

4? ? 結(jié)語(yǔ)

Scrapy框架具有高并發(fā)、代碼簡(jiǎn)單等優(yōu)勢(shì),氣象綜合業(yè)務(wù)實(shí)時(shí)監(jiān)控系統(tǒng)使用該框架可高效、方便地接入第三方應(yīng)用數(shù)據(jù),實(shí)現(xiàn)資源的統(tǒng)一采集與存儲(chǔ)、運(yùn)行監(jiān)控等功能,構(gòu)建一體化、可視化、開(kāi)放的監(jiān)控系統(tǒng),推動(dòng)氣象業(yè)務(wù)綜合化、集約化發(fā)展,提高業(yè)務(wù)、管理的現(xiàn)代化和信息化水平。

[參考文獻(xiàn)]

[1]孫超,肖文名,陳永濤,等.氣象綜合業(yè)務(wù)實(shí)時(shí)監(jiān)控系統(tǒng)的設(shè)計(jì)[J].氣象科技進(jìn)展,2018(1):153-157.

[2]崔慶才.Python3網(wǎng)絡(luò)爬蟲(chóng)開(kāi)發(fā)實(shí)戰(zhàn)[M].北京:人民郵電出版社,2018.

Application of Scrapy in obtaining third party data in meteorological

integrated service real-time monitoring system

Li Xiaoyang

(Inner Mongolia Autonomous Region Meteorological Information Center, Hohhot 010000, China)

Abstract:People have the higher and higher requirements for the quality and efficiency of business operation, the trend of monitoring product diversification is becoming greater and greater, including more and more systems. Therefore, the unified management of many independent but internally related subsystems will be the development direction of the monitoring platform. The construction of real-time monitoring system for meteorological integrated business is beneficial to the establishment of centralized management platform for real-time monitoring and display of meteorological integrated business, the promotion of integrated and intensive development of meteorological business, and the improvement of the modernization and information level of business and management. In order to build an integrated, visual and open meteorological integrated service real-time monitoring system access third party data, this paper provides information extraction based on Scrapy framework to achieve centralized monitoring, alarm, operation and maintenance integration, improve business operation and maintenance support ability.

Key words:meteorological integrated business; real-time monitoring system; Scrapy; crawler

猜你喜歡
爬蟲(chóng)
利用網(wǎng)絡(luò)爬蟲(chóng)技術(shù)驗(yàn)證房地產(chǎn)灰犀牛之說(shuō)
基于Python的網(wǎng)絡(luò)爬蟲(chóng)和反爬蟲(chóng)技術(shù)研究
善用網(wǎng)絡(luò)爬蟲(chóng)
基于Django 的分布式爬蟲(chóng)框架設(shè)計(jì)與實(shí)現(xiàn)*
目前互聯(lián)網(wǎng)中的網(wǎng)絡(luò)爬蟲(chóng)的原理和影響
網(wǎng)絡(luò)爬蟲(chóng)技術(shù)原理
誰(shuí)搶走了低價(jià)機(jī)票
利用爬蟲(chóng)技術(shù)的Geo-Gnutel la VANET流量采集
大數(shù)據(jù)背景下校園輿情的爬蟲(chóng)應(yīng)用研究
大數(shù)據(jù)環(huán)境下基于python的網(wǎng)絡(luò)爬蟲(chóng)技術(shù)
谢通门县| 汽车| 万载县| 湘潭县| 铜鼓县| 榆中县| 舞阳县| 敖汉旗| 靖西县| 新民市| 社旗县| 桑日县| 涞源县| 平度市| 大理市| 华坪县| 麦盖提县| 原平市| 上栗县| 威海市| 洮南市| 耿马| 石渠县| 滨海县| 南涧| 莲花县| 凉山| 南充市| 临安市| 水富县| 太康县| 台湾省| 卢湾区| 靖西县| 镶黄旗| 鹰潭市| 宕昌县| 梨树县| 宝坻区| 绥德县| 峨眉山市|