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

        ?

        基于Selenium框架的電力系統(tǒng)數(shù)據(jù)爬取應(yīng)用研究

        2020-07-27 16:44:00余凱湯淵黎海震夏偉軒
        現(xiàn)代信息科技 2020年5期
        關(guān)鍵詞:電力系統(tǒng)

        余凱 湯淵 黎海震 夏偉軒

        摘? 要:為了從大量數(shù)據(jù)中快速,高效地提取出有用的數(shù)據(jù)以方便數(shù)據(jù)分析。利用Python語言中的Selenium庫是目前廣泛應(yīng)用于爬蟲設(shè)計(jì)的一種方法,以其代碼精簡,拾取方便且效率較高等特點(diǎn),應(yīng)用于絕大部分企業(yè)的數(shù)據(jù)挖掘平臺中。通過應(yīng)用Python和Selenium的方法實(shí)現(xiàn)了數(shù)據(jù)的提取,并通過使用異常捕抓、函數(shù)封裝,統(tǒng)一調(diào)用實(shí)現(xiàn)了數(shù)據(jù)的導(dǎo)出和上傳的自動(dòng)化,結(jié)果表明使用Selenium爬蟲會優(yōu)于網(wǎng)頁爬蟲。

        關(guān)鍵詞:Selenium;異常處理;爬蟲;電力系統(tǒng)

        中圖分類號:TP311.5? ? ? 文獻(xiàn)標(biāo)識碼:A 文章編號:2096-4706(2020)05-0026-04

        Research on Application of Power System Data Crawler

        Based on Selenium Framework

        YU Kai,TANG Yuan,LI Haizhen,XIA Weixuan

        (Power Supply Service Center of Dongguan Power Supply Bureau of Guangdong Power Grid Company,Dongguan? 523000,China)

        Abstract:In order to extract useful data from a large number of data quickly and efficiently to facilitate data analysis. Using the Selenium library in Python language is a method widely used in crawler design at present. It is used in the data mining platform of most enterprises because of its simple code,convenient picking and high efficiency. The method of Python and Selenium is used to extract the data,and the automation of data export and upload is realized by using exception capture,function encapsulation and unified call. The results show that Selenium crawler is better than web crawler.

        Keywords:Selenium;abnormal jump catch;web crawler;electric system

        0? 引? 言

        隨著大數(shù)據(jù)時(shí)代的發(fā)展,越來越多的企業(yè)意識到了數(shù)據(jù)的重要性,如何從數(shù)以億計(jì)的信息中提取出自己想要的信息,已經(jīng)成為的大數(shù)據(jù)時(shí)代的必修課,爬蟲技術(shù)也應(yīng)運(yùn)而生,其通過設(shè)計(jì)規(guī)則,自我驅(qū)動(dòng)抓取網(wǎng)頁信息的特點(diǎn),做到了在大大減少人力消耗的前提下,提取出企業(yè)所要用的數(shù)據(jù)。通過網(wǎng)頁抓取后臺數(shù)據(jù),快速解析網(wǎng)頁代碼達(dá)到獲取網(wǎng)頁元素信息和數(shù)據(jù)包的方式,在無需破壞或介入數(shù)據(jù)庫的前提下,直接從系統(tǒng)和頁面取得想要的信息。為各類分析挖掘提供數(shù)據(jù)源支持。

        通過爬蟲獲取的各類信息紛雜,對爬蟲數(shù)據(jù)統(tǒng)一進(jìn)行必要的分析與預(yù)處理進(jìn)行數(shù)據(jù)上傳是適應(yīng)業(yè)務(wù)場景的必要環(huán)節(jié)。很多企業(yè)也通過其特有的方式構(gòu)建了其處理信息的平臺,將爬蟲接入這些信息平臺,使數(shù)據(jù)能夠通過后臺直觀地展現(xiàn)在其他應(yīng)用軟件上,以此開展更多的業(yè)務(wù)場景是為企業(yè)創(chuàng)造數(shù)據(jù)競爭力,幫助企業(yè)適應(yīng)大數(shù)據(jù)時(shí)代的重要環(huán)節(jié),因此,如何智能化地利用科技手段實(shí)現(xiàn)爬蟲與信息平臺的互通十分關(guān)鍵。

        1? 業(yè)務(wù)分析

        在電網(wǎng)企業(yè)電力營銷日常工作中,需要在營銷系統(tǒng)、計(jì)量系統(tǒng)以及其管理系統(tǒng)之間往返使用特定數(shù)據(jù)索引進(jìn)行數(shù)據(jù)提取、分析和整理后上傳到其他系統(tǒng)進(jìn)行分析,這部分工作往往重復(fù)性高、操作流程長。為避免此類工作耗費(fèi)大量時(shí)間和精力,使用爬蟲技術(shù)進(jìn)行跨平臺跨系統(tǒng)之間的數(shù)據(jù)提取和整理,實(shí)現(xiàn)電力系統(tǒng)數(shù)據(jù)整合上傳的自動(dòng)化操作。

        如整合當(dāng)月電量數(shù)據(jù)進(jìn)行分析的工作,需要對供售電量、電量排名、電量構(gòu)成、行業(yè)電量數(shù)據(jù)進(jìn)行導(dǎo)出及上傳,需要登錄到電力系統(tǒng),使用爬蟲導(dǎo)出當(dāng)月每一天的供售電量、電量排名、電量構(gòu)成、行業(yè)電量等在內(nèi)的19個(gè)電力數(shù)據(jù)。

        由圖1、圖2所示,對電力系統(tǒng)分析,發(fā)現(xiàn)電力系統(tǒng)主要由查詢部分、數(shù)據(jù)部分以及功能按鈕組成,以導(dǎo)出各行業(yè)售電量為例,要爬取該數(shù)據(jù),可以通過在查詢部分中點(diǎn)擊查詢按鈕,再點(diǎn)擊行數(shù)據(jù)內(nèi)數(shù)量的超鏈接,就可以預(yù)覽數(shù)據(jù)部分,最后點(diǎn)擊功能按鈕中的導(dǎo)出按鍵既可以將數(shù)據(jù)導(dǎo)出為如圖3所示的Excel表格,以上的步驟與Selenium爬蟲不謀而合,可以通過Selenium模擬用戶進(jìn)行查詢、點(diǎn)擊以及導(dǎo)出三個(gè)行為,實(shí)現(xiàn)數(shù)據(jù)的自動(dòng)導(dǎo)出。

        2? Selenium介紹

        2.1? Selenium原理

        Selenium是一個(gè)用于Web應(yīng)用程序測試的工具。Selenium測試直接運(yùn)行在瀏覽器中,就像真正的用戶在操作一樣。支持的瀏覽器包括IE(7,8,9,10,11)、Mozilla Firefox、Safari,Google Chrome、Opera等,Selenium通過對瀏覽器的驅(qū)動(dòng),對對象元素進(jìn)行控制,同時(shí)Selenium支持多種開發(fā)語言,比如Java、C和Python,通常會使用Python+Selenium+ Chrome/Firefox的組合來解決現(xiàn)有的網(wǎng)絡(luò)爬蟲登錄以及繞過JS和滑塊問題,目前Chrome和Firefox已經(jīng)完全替代了之前的PhantomJS無界面瀏覽器,能完成所有操作又節(jié)省內(nèi)存。這樣Chrome/Firefox負(fù)責(zé)渲染解析JavaScript,Selenium負(fù)責(zé)驅(qū)動(dòng)瀏覽器和Python進(jìn)行對接,Python負(fù)責(zé)做后期的處理,三者構(gòu)成一個(gè)完整的爬蟲結(jié)構(gòu)。

        這樣的結(jié)構(gòu)搭配,可以實(shí)現(xiàn)很多的操作,比如填寫表單、點(diǎn)擊鏈接、鼠標(biāo)拖拽,鼠標(biāo)點(diǎn)擊等,為爬蟲操作帶來極大的方便,能解決一系列人工操作的問題,為網(wǎng)絡(luò)爬蟲通過驗(yàn)證登錄信息提供了方便,模擬瀏覽器正常流程圖,如圖4所示。

        2.2? Selenium相關(guān)API

        安裝Selenium命令:pip install selenium,安裝核心API后可以進(jìn)行多種操作,比如窗口切換、表達(dá)操作鼠標(biāo)操作等為實(shí)現(xiàn)模擬操作環(huán)境提供接口。在電力系統(tǒng)中,主要用到了5個(gè)API,分別是核心驅(qū)動(dòng)模塊,訪問網(wǎng)址模塊,元素定位方法,網(wǎng)頁延時(shí)模塊,退出瀏覽器模塊,核心驅(qū)動(dòng)模塊可以配合訪問網(wǎng)址來啟動(dòng)Chrome瀏覽器并登錄電力系統(tǒng),元素定位方法可以定位需要模擬點(diǎn)擊或者輸入的位置,以及定位網(wǎng)頁中點(diǎn)擊按鈕所在框架的位置,定位位置后通過模擬用戶點(diǎn)擊導(dǎo)出按鈕實(shí)現(xiàn)數(shù)據(jù)的提取,而顯式等待和隱式等待可以等待一段時(shí)間再執(zhí)行下一個(gè)命令,解決由于網(wǎng)速等原因造成的頁面卡頓而無法定位元素位置,以及點(diǎn)擊導(dǎo)致的運(yùn)行出錯(cuò)問題,在導(dǎo)出完所需的所有數(shù)據(jù)之后可以通過退出瀏覽器模塊退出,通過以上5個(gè)API可以對電力系統(tǒng)實(shí)現(xiàn)一個(gè)效率高、穩(wěn)定性強(qiáng)的Selenium爬蟲。

        3? 具體實(shí)現(xiàn)

        3.1? 架構(gòu)設(shè)置

        一個(gè)優(yōu)秀的爬蟲應(yīng)該具有:明確的爬取目標(biāo)、高效的爬取策略、有效的前置后后置處理以及快速的運(yùn)行速度,針對4個(gè)要求,本節(jié)設(shè)計(jì)了符合“計(jì)量自動(dòng)化系統(tǒng)”的爬蟲架構(gòu),共4個(gè)模塊,分別為用戶基本行為模塊、數(shù)據(jù)導(dǎo)出模塊、數(shù)據(jù)處理模塊、數(shù)據(jù)存儲模塊,總結(jié)如下:

        用戶基本行為模塊負(fù)責(zé)完善點(diǎn)擊,查找元素等在Selenium中的基本行為,通過捕抓異常的方式讓代碼不會因?yàn)橐淮雾撁纥c(diǎn)擊失敗或者導(dǎo)出超時(shí)等原因而停止后續(xù)的操作,使得代碼具有強(qiáng)有力的生命力,在電力系統(tǒng)中,該模塊可以保證數(shù)據(jù)的正常導(dǎo)出,是下面3個(gè)模塊的基礎(chǔ),保證了Selenium爬蟲的穩(wěn)定性,點(diǎn)擊模塊的流程圖如圖5所示。

        數(shù)據(jù)導(dǎo)出模塊負(fù)責(zé)進(jìn)入到電力系統(tǒng)中導(dǎo)出按鈕所對應(yīng)的框架中,并點(diǎn)擊導(dǎo)出數(shù)據(jù)按鈕,數(shù)據(jù)處理模塊負(fù)責(zé)將導(dǎo)出的Excel按照用戶的需求挑選出所需的行或者列,保持與后續(xù)數(shù)據(jù)上傳的接口與數(shù)據(jù)列名的一致性,并剔除不需要的數(shù)據(jù),減少內(nèi)存的占用,數(shù)據(jù)存儲模塊則是將處理好的Excel以前一天的時(shí)間命名,并保存到對應(yīng)的文件夾中。

        以上三個(gè)步驟配合用戶基本行為模塊可以實(shí)現(xiàn)完整的電力系統(tǒng)的數(shù)據(jù)導(dǎo)出,最終得到包含各行業(yè)售電量情況、東莞電量分布情況在內(nèi)的19個(gè)Excel,以各行業(yè)售電量情況為例。流程圖和結(jié)果如圖6、圖7所示。

        最后為了使代碼更整潔高效,將每一個(gè)文件的導(dǎo)出代碼封裝成一個(gè)函數(shù),再將函數(shù)放到類下面,建立main.py文件,在文件內(nèi)進(jìn)行類的實(shí)例化和類函數(shù)的調(diào)用,并通過建立定時(shí)任務(wù)的方式,使得Selenium爬蟲能自動(dòng)導(dǎo)出所需要的文件。

        3.2? 結(jié)果對比

        由圖8、圖9可以發(fā)現(xiàn),通過Selenium爬蟲的方式模擬人工進(jìn)行數(shù)據(jù)導(dǎo)出的結(jié)果在數(shù)據(jù)的排版上會優(yōu)于網(wǎng)頁爬蟲,同時(shí)也可以保持?jǐn)?shù)據(jù)編碼與原數(shù)據(jù)一致,并且使用Selenium也可以省略網(wǎng)頁分析,正則表達(dá)式提取等其他爬蟲所需結(jié)合的提取方式,減少了運(yùn)行所需的時(shí)間,提高了效率。

        4? 結(jié)? 論

        通過Python和Selenium設(shè)計(jì)了一套符合電力系統(tǒng)網(wǎng)頁特點(diǎn)的爬取、上傳的架構(gòu),將用戶行為都封裝成了函數(shù)的形式,通過調(diào)用這些簡單的用戶行為函數(shù)實(shí)現(xiàn)每一個(gè)文件的導(dǎo)出,并將這些函數(shù)定義為類,在main.py文件中可以通過類來調(diào)用每一個(gè)函數(shù),實(shí)現(xiàn)每一個(gè)文件的導(dǎo)出,在有需要的時(shí)候也可以單獨(dú)調(diào)用類函數(shù)導(dǎo)出數(shù)據(jù),經(jīng)過多次實(shí)驗(yàn),以導(dǎo)出的方式提取數(shù)據(jù),結(jié)果將優(yōu)于使用網(wǎng)頁爬蟲,并且在導(dǎo)出數(shù)據(jù)時(shí)可以關(guān)閉屏幕。

        參考文獻(xiàn):

        [1] 安子建.基于Scrapy框架的網(wǎng)絡(luò)爬蟲實(shí)現(xiàn)與數(shù)據(jù)抓取分析 [D].長春:吉林大學(xué),2017.

        [2] 樊濤,趙征,劉敏娟.基于Selenium的網(wǎng)絡(luò)爬蟲分析與實(shí)現(xiàn) [J].電腦編程技巧與維護(hù),2019(9):155-156+170.

        [3] 花君林.基于Selenium的Python網(wǎng)絡(luò)爬蟲的實(shí)現(xiàn) [J].電腦編程技巧與維護(hù),2017(15):30-31+36.

        [4] 杜彬.基于Selenium的定向網(wǎng)絡(luò)爬蟲設(shè)計(jì)與實(shí)現(xiàn) [J].金融科技時(shí)代,2016(7):35-39.

        [5] 劉洋,田儒賢,唐蘭文.基于WebDriver技術(shù)的定向網(wǎng)絡(luò)爬蟲研究 [J].電腦知識與技術(shù),2020,16(3):34-36.

        [6] 陳清.基于Python的網(wǎng)站爬蟲應(yīng)用研究 [J].通訊世界,2020,27(1):202-203.

        [7] 樓姍姍.大數(shù)據(jù)環(huán)境下基于python的網(wǎng)絡(luò)爬蟲技術(shù)探討 [J].決策探索(中),2019(11):92.

        [8] 朱梓熙,吳文慶.一種智能自動(dòng)獲取信息的方法——以獲取養(yǎng)老機(jī)構(gòu)信息為例 [J].科技創(chuàng)新發(fā)展戰(zhàn)略研究,2020,4(1):47-51.

        [9] 莊文龍,陳惠娟.基于Selenium2的自動(dòng)化測試應(yīng)用 [J].福建電腦,2019,35(8):89-91.

        [10] 李瑞,徐家喜.基于selenium2的自動(dòng)化測試系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn) [J].福建電腦,2018,34(7):26-27+2.

        [11] 馮晶晶.基于Selenium的Web自動(dòng)化測試框架的設(shè)計(jì)與實(shí)現(xiàn) [D].北京:北京工業(yè)大學(xué),2018.

        [12] 劉瑾.Web系統(tǒng)Selenium WebDriver自動(dòng)化測試框架搭建 [J].電子技術(shù)與軟件工程,2017(21):171-172.

        作者簡介:余凱(1978-),男,漢族,廣東湛江人,電力工程師,本科,研究方向:電力營銷。

        猜你喜歡
        電力系統(tǒng)
        淺析繼電保護(hù)自動(dòng)化技術(shù)在電力系統(tǒng)中的應(yīng)用
        電力系統(tǒng)變電運(yùn)行設(shè)備維護(hù)技術(shù)分析
        并聯(lián)電抗器在高壓電網(wǎng)中的應(yīng)用
        試論電力繼電保護(hù)運(yùn)行及可靠性問題
        信息時(shí)代的電力系統(tǒng)信息化經(jīng)驗(yàn)談
        關(guān)于智能變電站繼電保護(hù)技術(shù)優(yōu)化探討
        探討電力系統(tǒng)中配網(wǎng)自動(dòng)化技術(shù)
        科技視界(2016年21期)2016-10-17 20:00:58
        配網(wǎng)自動(dòng)化技術(shù)的應(yīng)用探討
        科技視界(2016年21期)2016-10-17 19:54:47
        一種新型高壓電纜頭制作方法
        電力系統(tǒng)繼電保護(hù)技術(shù)常見問題及對策
        亚州韩国日本区一区二区片| 亚洲国产成人久久一区www| 国产精品精品| av网站影片在线观看| 久久精品国产亚洲av久按摩| 无码人妻精品一区二区三| 在线观看国产成人av片| 99久久精品一区二区三区蜜臀| 在线免费观看毛视频亚洲精品| 四虎影在永久在线观看| 亚洲熟少妇在线播放999| 国产乱子伦精品免费女| 日本顶级片一区二区三区| 欧美v国产v亚洲v日韩九九| 中国a级毛片免费观看| 亚洲av日韩片在线观看| 日本久久久精品免费免费理论| 2018天天躁夜夜躁狠狠躁| 一本大道久久东京热无码av| a午夜国产一级黄片| 蜜臀av一区二区三区| 国产卡一卡二卡3卡4乱码| 欧美成人一区二区三区在线观看| av天堂线上| av网站免费在线浏览| 精品区2区3区4区产品乱码9| 国产精品白浆视频免费观看| 日韩国产有码精品一区二在线| 国产一区二区三区四色av| 日日碰狠狠添天天爽无码| 麻豆AV免费网站| 一区二区三区免费自拍偷拍视频| 国产成人无码av一区二区在线观看| 亚洲av无码不卡| 一区在线播放| 婚外情长久的相处之道| 99热爱久久99热爱九九热爱| 国产小毛片| 亚洲中文字幕乱码免费看| 日日麻批免费40分钟无码| 精品久久久无码中文字幕|