999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

河南有線的創新應用
——日報數據的自動抓取與填報

2020-01-14 01:03:24蘇本國張衛云
中國傳媒科技 2019年12期
關鍵詞:頁面方法

文/蘇本國 張衛云

1.背景

麥肯錫稱:數據,已經滲透到當今每一個行業和業務職能領域,成為重要的生產因素。在這個時代,公司的決策者、經營者都需要通過數據觀察企業運作狀態以及規律,沒有數據,我們舉步維艱。

系統報表能為我們提供各種基礎數據,但數據維度和格式固化,不能靈活滿足我們的臨時需求。所以,手工填報定制的、多變的經營日報(周報月報)是所有經營單位都必須持續開展的日常工作。

Excel靈活而強大,能處理工作中大部分的數據。使用Excel可以方便地制作包含原數據、計算過程和最終展現結果的日報(周報月報)模板。

河南有線信息支撐部在日常工作中,常根據公司領導要求,臨時制作各種Excel模板,并根據當時需求,有選擇地將各系統平臺上的報表數據手工填入臨時模板。該工作難度低,重復性強,尤其月初,需要填報的模板在30份左右,每份需要打開的報表頁面基本都在10個以上,僅月初就需要6人一天的工作量。

為此,我們嘗試尋找一種自動獲取數據并填報的方法,最終找到目前排行第一的開源開發工具Python,經過一段時間的學習和研究,我們利用該工具編寫了網頁爬取、Excel數據填寫的可執行程序,成功實現了數據的自動填報工作目標。

2.思路和過程概述

圖1

使用python編寫網頁爬蟲的步驟,可分為:發送請求、獲取數據、解析數據和存儲數據四步。但在實際操作中,因爬取方法不同,我們直接獲取到了數據的列表,所以省去了數據解析環節,只保留了三步:發送請求、獲取數據和存儲數據。每個過程處理細節詳情如圖1所示:

下面按圖示步驟,分步說明在應用程序的編寫過程中,每一步遇到的問題及相應的解決方案。

3.編制過程詳解

3.1 發送請求

3.1.1 請求頁面的三種方法選擇

爬取數據,第一步操作就是模擬瀏覽器向網頁所在的服務器發出請求。我們需要抓取的頁面是公司內部CRM客戶關系管理系統的報表數據,無需身份驗證,但請求參數較多,報表數據由JavaScript動態加載。

3.1.1.1 基礎的用法,使用 urllib 的 request模塊

該模塊中的urlopen()方法,可以實現簡單的請求發送操作,并得到響應。但該方法在構造帶參數的請求時較為復雜。

3.1.1.2 高級用法,使用 requests庫

requests庫中的方法可輕松實現帶參數、cookies、登錄驗證和代理設置等網頁請求,但得到的結果和在瀏覽器中看到的不一樣:在瀏覽器中可以看到的顯示數據,但requests得到的結果中并沒有。這是因為requests獲取的都是原始HTML文檔,而瀏覽器中的數據則是經過JavaScript處理數據后生成的結果。

云南積極融入服務長江經濟帶發展戰略,有利于云南充分發揮比較優勢,把特色資源轉化為經濟優勢,把云南打造成為煙草、能源、冶金、化工、特色輕工基地和承接產業轉移基地。

3.1.1.3 模擬瀏覽器法,使用 selenium 庫

為了解決獲取JavaScript生成的動態頁面數據問題,我們查閱相關資料后最終選擇使用模擬瀏覽器庫——Selenium處理。

Selenium是一個自動測試工具,利用它可驅動瀏覽器執行特定的動作,如點擊、下拉等操作,同時還可以獲取瀏覽器當前呈現的頁面源代碼,做到可見即可爬。注:在使用該方法前,除安裝Selenium庫外,還需要正確安裝好使用的瀏覽器,如Chrome,并配置好ChromeDriver。

3.1.2 頁面分析與構造請求

分析請求參數,打開報表頁面,按F12打開“開發者工具”,從Query String Parameters發現URL中所帶參數較多,且含有中文參數(地市信息)。針對這樣的復雜參數信息,我們采用了“基礎地址+參數信息”的方法重新構造URL,然后再使用Selenium庫發送請求。在此過程中,遇到了不少細節問題,詳情及解決方法如表1所示:

表1

3.1.3 發送請求

根據“分析請求參數”時所獲信息,使用selenium庫模擬谷歌瀏覽器向服務器發出請求。獲取各地市現金流的腳本編寫如下:

3.2 獲取數據

打開報表頁面,按F12打開“開發者工具”,選中要提取的元素,右鍵選擇“審查元素”,可找到該元素所在的節點位置。由于該元素沒有較明確的節點ID,且有較多同類節點,因此采用逐級上查,找到離其最近的有明確節點ID的節點“__bookmark2__”,以便CSS選擇器定位待查數據。獲取數據腳本如下:

3.2.2 關于延時等待

在調測過程中,發現報表頁面自動打開后很快關閉,并沒有獲得目標數據。資料顯示selenium的get()方法會在網頁的框架加載結束后結束執行,此時,服務器給瀏覽器的響應中可能也沒有目標數據。因此,這里需要增加延時等待。延時等待分顯示和隱式,在本應用中,我們采用了顯示等待的方法,在控制語句中增加了WebDriverWait()函數。即:在規定時間內加載指定節點,如果加載完成,則正常返回查找的節點,否則,拋出超時異常。控制腳本如下:

3.3 存儲數據

3.3.1 Python 往 Excel中寫數據的 5 種方法

Python擁有一個強大的標準庫,同時,Python社區提供了大量的第三方模塊。完成一項任務可有多種方法,只有選擇合適的方法才能達到自己的目標。將所獲數據寫入Excel時,我們嘗試了多種方法,但都無法實現“無損模板地更新”的目標。網上有文章整理了Python寫入Excel的4種方法及其優缺點,增加我們自己的一種方法,歸納如下:

表2

其中,使用OpenPyXL修改模板時,只可追加sheet頁,但不能更新單元格,會影響表中原有公式;但使用Microsoft Excel則可修改部分單元格數據,且不會影響原公式。因為本應用中既需要讀,又需要更新Excel文檔中的部分數據,且不能修改原文檔中的公式,所以,在此只能使用Microsoft Excel API,即引用win32com組件。

3.3.2 使用win32com組件,修改Excel表中部分數據

寫入Excel文檔的全過程:調用win32com組件,啟動獨立的Excel進程,并打開Excel模板文件,使用sheet.Cells(i, j).Value實現給“第i行第j列”單元格賦值。相關腳本如下:

圖2

圖3

4.成果展現

經過以上三步操作,一個完整的數據抓取和填報程序就完成了,加上友好的參數錄入及進度提示住處,再使用pyinstaller將程序編譯成可執行文件。將可執行文件和模板一起移置到應用環境中,按周期執行該文件,輸入統計需要的參數,即可以直觀地看到頁面打開過程和Excel數據刷新過程。圖2為目標頁面逐一打開的過程,圖3為Excel文檔自動打開的過程,此后,隨著Excel數據的刷新,文檔中原有計算公式會自動計算,待數據寫入完畢,目標數據即為可發布數據。

結語

使用python的擴展庫和模塊實現獲取和使用數據較為簡單,本應用使用的擴展庫和模塊有:selenium、urllib、win32com和datetime等。方便快捷地實現了目標功能,解決常用報表的自動填報問題,在節約人力成本的同時,提高了工作效率和數據準確度。

猜你喜歡
頁面方法
微信群聊總是找不到,打開這個開關就好了
大狗熊在睡覺
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
學習方法
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
同一Word文檔 縱橫頁面并存
淺析ASP.NET頁面導航技術
主站蜘蛛池模板: 亚洲精品图区| 欧美日韩亚洲综合在线观看| 免费一级成人毛片| 亚洲国产成人久久77| 亚洲精品在线观看91| 亚洲无码37.| 亚洲视频三级| 国产天天色| 大学生久久香蕉国产线观看| 一级做a爰片久久免费| 天天综合亚洲| 婷婷六月综合| 亚洲国产成人超福利久久精品| 99视频全部免费| 五月天久久婷婷| 日韩精品成人在线| 91精品国产自产91精品资源| 国产剧情国内精品原创| 免费又爽又刺激高潮网址 | 国产女人综合久久精品视| 熟女日韩精品2区| 亚洲中文字幕在线观看| 经典三级久久| 午夜日韩久久影院| 爱色欧美亚洲综合图区| 在线视频亚洲色图| 欧美成人h精品网站| 欧美日韩国产在线观看一区二区三区 | 亚洲国产亚洲综合在线尤物| 最新精品久久精品| 国产精品所毛片视频| 欧美高清日韩| 996免费视频国产在线播放| 中文字幕一区二区人妻电影| 日日噜噜夜夜狠狠视频| 国产精品黄色片| 中文无码精品A∨在线观看不卡| 鲁鲁鲁爽爽爽在线视频观看| 欧美成人亚洲综合精品欧美激情| 国产精品va免费视频| 91九色视频网| 亚洲人成日本在线观看| a欧美在线| 国产爽爽视频| AⅤ色综合久久天堂AV色综合| 精品无码人妻一区二区| 久久精品人人做人人爽| a毛片在线| 久久伊人色| 国产精品欧美激情| 久久99精品久久久久久不卡| 日本欧美视频在线观看| 亚洲an第二区国产精品| 国产精品浪潮Av| 青青操视频在线| 国产区在线观看视频| 日韩福利在线视频| 成人无码区免费视频网站蜜臀| 四虎影视8848永久精品| a级毛片免费播放| www.日韩三级| 人妻少妇久久久久久97人妻| 亚洲无码视频图片| 免费国产无遮挡又黄又爽| 中文字幕永久在线看| 又粗又硬又大又爽免费视频播放| 国产精品香蕉在线| 日韩a在线观看免费观看| 亚洲无码高清免费视频亚洲| 久久国产黑丝袜视频| 国产亚洲精品自在线| 国产综合网站| 在线观看欧美国产| 中国一级特黄大片在线观看| 农村乱人伦一区二区| 无码一区中文字幕| 福利视频一区| 国产资源免费观看| 中文字幕无码中文字幕有码在线| 麻豆国产精品一二三在线观看| 精品国产黑色丝袜高跟鞋| 国产精品私拍在线爆乳|