• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

    余凱 湯淵 黎海震 夏偉軒

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

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

    中圖分類號:TP311.5? ? ? 文獻標識碼: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ù)時代的必修課,爬蟲技術也應運而生,其通過設計規(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)一進行必要的分析與預處理進行數(shù)據(jù)上傳是適應業(yè)務場景的必要環(huán)節(jié)。很多企業(yè)也通過其特有的方式構建了其處理信息的平臺,將爬蟲接入這些信息平臺,使數(shù)據(jù)能夠通過后臺直觀地展現(xiàn)在其他應用軟件上,以此開展更多的業(yè)務場景是為企業(yè)創(chuàng)造數(shù)據(jù)競爭力,幫助企業(yè)適應大數(shù)據(jù)時代的重要環(huán)節(jié),因此,如何智能化地利用科技手段實現(xiàn)爬蟲與信息平臺的互通十分關鍵。

    1? 業(yè)務分析

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

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

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

    2? Selenium介紹

    2.1? Selenium原理

    Selenium是一個用于Web應用程序測試的工具。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)絡爬蟲登錄以及繞過JS和滑塊問題,目前Chrome和Firefox已經(jīng)完全替代了之前的PhantomJS無界面瀏覽器,能完成所有操作又節(jié)省內(nèi)存。這樣Chrome/Firefox負責渲染解析JavaScript,Selenium負責驅(qū)動瀏覽器和Python進行對接,Python負責做后期的處理,三者構成一個完整的爬蟲結構。

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

    2.2? Selenium相關API

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

    3? 具體實現(xiàn)

    3.1? 架構設置

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

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

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

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

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

    3.2? 結果對比

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

    4? 結? 論

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

    參考文獻:

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

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

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

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

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

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

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

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

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

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

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

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

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

    猜你喜歡
    爬蟲電力系統(tǒng)
    利用網(wǎng)絡爬蟲技術驗證房地產(chǎn)灰犀牛之說
    基于Python的網(wǎng)絡爬蟲和反爬蟲技術研究
    利用爬蟲技術的Geo-Gnutel la VANET流量采集
    電子測試(2018年1期)2018-04-18 11:53:04
    大數(shù)據(jù)背景下校園輿情的爬蟲應用研究
    電子制作(2018年2期)2018-04-18 07:13:42
    大數(shù)據(jù)環(huán)境下基于python的網(wǎng)絡爬蟲技術
    電子制作(2017年9期)2017-04-17 03:00:46
    試論電力繼電保護運行及可靠性問題
    信息時代的電力系統(tǒng)信息化經(jīng)驗談
    探討電力系統(tǒng)中配網(wǎng)自動化技術
    科技視界(2016年21期)2016-10-17 20:00:58
    配網(wǎng)自動化技術的應用探討
    科技視界(2016年21期)2016-10-17 19:54:47
    電力系統(tǒng)繼電保護技術常見問題及對策
    铁力市| 额敏县| 新密市| 吴江市| 三门峡市| 东方市| 大姚县| 天全县| 房产| 禄丰县| 海南省| 浦北县| 南江县| 宜春市| 连云港市| 鄂伦春自治旗| 平乡县| 灵寿县| 天祝| 酉阳| 绥德县| 郁南县| 涡阳县| 乌拉特前旗| 康平县| 军事| 大渡口区| 中山市| 台东县| 凭祥市| 嫩江县| 大新县| 临洮县| 沂源县| 台安县| 威信县| 舟山市| 普安县| 东乡县| 洛隆县| 江西省|