999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人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è)計的一種方法,以其代碼精簡,拾取方便且效率較高等特點,應(yīng)用于絕大部分企業(yè)的數(shù)據(jù)挖掘平臺中。通過應(yīng)用Python和Selenium的方法實現(xiàn)了數(shù)據(jù)的提取,并通過使用異常捕抓、函數(shù)封裝,統(tǒng)一調(diào)用實現(xiàn)了數(shù)據(jù)的導(dǎo)出和上傳的自動化,結(jié)果表明使用Selenium爬蟲會優(yōu)于網(wǎng)頁爬蟲。

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

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

通過爬蟲獲取的各類信息紛雜,對爬蟲數(shù)據(jù)統(tǒng)一進行必要的分析與預(yù)處理進行數(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ù)時代的重要環(huán)節(jié),因此,如何智能化地利用科技手段實現(xiàn)爬蟲與信息平臺的互通十分關(guān)鍵。

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

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

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

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

2? Selenium介紹

2.1? Selenium原理

Selenium是一個用于Web應(yīng)用程序測試的工具。Selenium測試直接運行在瀏覽器中,就像真正的用戶在操作一樣。支持的瀏覽器包括IE(7,8,9,10,11)、Mozilla Firefox、Safari,Google Chrome、Opera等,Selenium通過對瀏覽器的驅(qū)動,對對象元素進行控制,同時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負責(zé)渲染解析JavaScript,Selenium負責(zé)驅(qū)動瀏覽器和Python進行對接,Python負責(zé)做后期的處理,三者構(gòu)成一個完整的爬蟲結(jié)構(gòu)。

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

2.2? Selenium相關(guān)API

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

3? 具體實現(xiàn)

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

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

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

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

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

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

3.2? 結(jié)果對比

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

4? 結(jié)? 論

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

參考文獻:

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

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

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

[4] 杜彬.基于Selenium的定向網(wǎng)絡(luò)爬蟲設(shè)計與實現(xiàn) [J].金融科技時代,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] 朱梓熙,吳文慶.一種智能自動獲取信息的方法——以獲取養(yǎng)老機構(gòu)信息為例 [J].科技創(chuàng)新發(fā)展戰(zhàn)略研究,2020,4(1):47-51.

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

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

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

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

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

猜你喜歡
電力系統(tǒng)
淺析繼電保護自動化技術(shù)在電力系統(tǒng)中的應(yīng)用
電力系統(tǒng)變電運行設(shè)備維護技術(shù)分析
并聯(lián)電抗器在高壓電網(wǎng)中的應(yīng)用
試論電力繼電保護運行及可靠性問題
信息時代的電力系統(tǒng)信息化經(jīng)驗談
關(guān)于智能變電站繼電保護技術(shù)優(yōu)化探討
探討電力系統(tǒng)中配網(wǎng)自動化技術(shù)
科技視界(2016年21期)2016-10-17 20:00:58
配網(wǎng)自動化技術(shù)的應(yīng)用探討
科技視界(2016年21期)2016-10-17 19:54:47
一種新型高壓電纜頭制作方法
電力系統(tǒng)繼電保護技術(shù)常見問題及對策
主站蜘蛛池模板: 亚洲色图狠狠干| 女人18毛片一级毛片在线 | 国产在线一区视频| 天堂久久久久久中文字幕| 色哟哟色院91精品网站 | 成年A级毛片| 亚洲午夜福利精品无码不卡| 狠狠做深爱婷婷综合一区| 无遮挡一级毛片呦女视频| 无码日韩精品91超碰| 国产精品理论片| 精品久久久久成人码免费动漫| 午夜日b视频| 成人免费视频一区二区三区| 久久黄色影院| 台湾AV国片精品女同性| 人妻中文久热无码丝袜| 亚洲最大综合网| 女人18毛片一级毛片在线 | 精品国产自| 欧美成人看片一区二区三区| 日韩毛片在线播放| 国产美女无遮挡免费视频| 国产欧美性爱网| 青青青国产视频| 露脸国产精品自产在线播| 欧美第二区| 日韩在线成年视频人网站观看| lhav亚洲精品| 福利小视频在线播放| 自拍中文字幕| 无码专区国产精品第一页| a级毛片在线免费观看| 99成人在线观看| 国产免费怡红院视频| 午夜视频在线观看免费网站 | 999精品视频在线| 久久久久国产精品嫩草影院| 99精品国产自在现线观看| 国产精品网址你懂的| 国产成人综合在线视频| 欧美成人影院亚洲综合图| 国产H片无码不卡在线视频| 亚洲日本中文综合在线| 无码福利视频| 国产99精品久久| 久久久久无码精品| 亚洲成人在线播放 | 国产91久久久久久| 91小视频在线| 国产黄网永久免费| 久久伊伊香蕉综合精品| 呦女精品网站| 午夜国产理论| 青青青伊人色综合久久| 99这里只有精品免费视频| 欧美在线国产| 激情在线网| 久久天天躁狠狠躁夜夜2020一| 亚洲欧美日韩成人在线| 亚洲天堂日韩在线| 国内精品自在欧美一区| 欧洲亚洲一区| 亚洲福利网址| 第一页亚洲| 国产高颜值露脸在线观看| 亚洲精品无码高潮喷水A| 香蕉国产精品视频| 久久网欧美| 五月激激激综合网色播免费| 在线精品视频成人网| 噜噜噜久久| 欧美精品黑人粗大| 国产91小视频在线观看 | 亚洲中文字幕无码爆乳| 波多野结衣二区| 国产三区二区| 女人18毛片久久| 国产亚洲视频免费播放| 夜色爽爽影院18禁妓女影院| 亚洲欧洲美色一区二区三区| 欧美中文字幕在线视频|