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

基于WebDriver的定向網絡爬蟲設計與實現

2016-11-29 03:42:41時永坤
軟件 2016年9期
關鍵詞:頁面

時永坤

(華北計算技術研究所,北京市 100083)

基于WebDriver的定向網絡爬蟲設計與實現

時永坤

(華北計算技術研究所,北京市100083)

隨著Web 2.0的興起,網絡上的海量信息迎來了爆發性地增長。從網絡上的公開數據中提取有效信息成為了數據挖掘領域的新熱點。數據獲取是數據分析的第一步。Web 2.0時代的網站在內容和形態方面發生了深刻的變化,對傳統的以靜態頁面分析為基礎的網絡爬蟲提出了新的挑戰。本文利用WebDriver實現了一個定向網絡爬蟲,該爬蟲能夠自動采集指定網頁數據,支持Ajax等動態技術,能夠對簡單驗證碼進行識別,并繞過爬蟲檢測。利用該爬蟲對全國企業信用信息系統進行爬取,取得了良好效果。

網絡爬蟲;網頁解析;動態內容獲取

本文著錄格式:時永坤. 基于WebDriver的定向網絡爬蟲設計與實現[J]. 軟件,2016,37(9):94-97

0 引言

隨著網絡的迅速發展,萬維網成為大量信息的載體,如何有效地提取并利用這些信息成為一個巨大的挑戰[1-2]。為解決這一問題,出現了以網絡爬蟲為基礎的搜索引擎技術。近年來,隨著Web 2.0的興起,互聯網的內容和形態發生了深刻的變化。相對于以門戶網站為代表的Web 1.0,Web 2.0強調個人化、去中心化、社會化,強調開放、共享、參與、創造,它讓用戶、參與、創作成為了互聯網文化的核心[3]。同時,為與其內容相適應,Web 2.0廣泛采用動態頁面、Ajax異步傳輸、前端MVC等動態技術。這些技術在提高網站開發效率、改善用戶體驗的同時[4],也對于以靜態頁面分析為主的傳統網頁爬蟲提出了新的挑戰。

首先,Ajax等動態技術的應用[5],導致傳統網絡爬蟲無法獲取動態站點中的所有頁面,無法充分利用網頁數據;其次,基于靜態頁面分析的傳統爬蟲難以還原瀏覽器渲染生成的動態頁面,為信息的提取增加了困難;同時,反爬蟲技術的應用也對傳統網絡爬蟲的發展提出了挑戰。針對上述問題,本文針對全國企業信用信息網,基于WebDriver設計并實現了一個定向網頁爬蟲。該爬蟲能夠自動采集指定網頁數據,支持Ajax等動態技術,能夠對簡單驗證碼進行識別,并繞過爬蟲檢測。

1 設計與實現

本文基于WebDriver實現網絡爬蟲,用于爬取企業信用信息,取得了較好結果。WebDriver是基于瀏覽器的開源自動化測試工具。利用WebDriver,可以自動加載網頁,執行JavaScript腳本,獲取頁面元素,而無需網絡通信、腳本執行流程等細節。同時,因為采用UserAgent模式,基于WebDriver的網絡爬蟲能夠繞過某些頁面對于爬蟲的檢測和限制[6]。具體模塊設計如下:

1.1瀏覽器模塊

WebDriver支持Chrome、Firefox、IE、PhantomJS等多種瀏覽器模塊。其中Chrome、Firefox、IE是可視化瀏覽器,執行過程中能夠直觀觀察程序過程,便于開發調試。PhantomJS是Headless瀏覽器,僅啟動瀏覽器內核,不進行可視化顯示,因而運行速度較快。本文采用PhantomJS進行網絡爬蟲開發。本文設計的網頁爬蟲利用了PhantomJS支持以下特性:

1. 元素選擇器

PhantomJS能夠通過XPath、CSS等選擇其選擇頁面中的指定元素,以便對元素進行后續操作。

2. 頁面交互

PhantomJS支持鼠標單擊、雙擊、移入移出、拖拽等交互動作。使用這些動作能夠模擬用戶操作,獲取所需信息。

3. 表單填充

PhantomJS能夠獲取和設置input、select等表單元素值。

4. JavaScript支持

1.2頁面解析模塊

本文采用Beautiful Soup進行頁面解析。Beautiful Soup能夠從HTML或XML文件中提取數據,能夠通過用戶指定的轉換器實現通用的文檔瀏覽、查找和修改。Beautiful Soup訪問頁面元素屬性、子節點和遍歷查找文檔樹的相關接口,為文檔解析提供了便利[7]。為了便于開發,提高代碼復用性[8],本文實現的網頁爬蟲在Beautiful Soup的基礎上開發了以下文檔解析模塊:

1.2.1文檔解析

本文設計的爬蟲需要在多個Web頁面、iframe、標簽間進行切換,以爬取所需信息。文檔解析模塊需實現以下功能:

1. 判斷頁面是否完成加載

本爬蟲通過WebDriver提供的wait.until API判斷配置文件中指定的元素是否存判斷頁面是否完成加載。

2. 查找要解析的標簽

使用通過調用find_element_by_xpath實現此功能。

3. Frame切換

本爬蟲針對北京市企業信用信息網進行爬取,該網站中有效信息分布于多個iframe中。由于WebDriver不能跨iframe進行文檔解析,所以文檔解析模塊需要能夠按照配置信息在多個iframe間自動切換。本文采用WebDriver的switch_to.frame API進行iframe切換,并在該iframe解析完成后通過調用switch_to.default_content切換回默認頁面。

文檔解析模塊通過配置文件讀取要解析的標簽的name、id、序號等,從瀏覽器模塊獲取到的頁面中提取出所需標簽,并調用表格解析模塊提取有效信息。配置文件設計如下:

配置文件中各字段含義為:

1. tag_name 信息類型

2. div_id要解析的標簽的ID

3. tables要解析的Table元素元數據

4. frame要解析的iframe元數據

1.2.2表格解析模塊

1. 表格解析模塊用于從table元素中提取出所需信息,將其轉換為易于分析處理的JSON文檔。本文實現的網絡爬蟲需要對多種形式的表格進行處理,包括單表頭行的表格(圖2)、多表頭的表格(圖3)、分頁表格(圖4)。

圖2 單表頭行表格

圖3 多表頭表格

圖4 分頁表格

本模塊需要實現以下功能:

1. 判斷表格形式

對單表頭行表格和多表頭表格,可以通過首行中是否存在td標簽進行區分。對于分頁表格,可以通過表格是否為與iframe中進行判斷。

2. 解析表格

3. 提供翻頁功能

對于分頁表格,需要通過模擬翻頁才能提取到全部信息。本文的網絡爬蟲通過以下步驟實現翻頁功能:

1)獲取總頁數

本例中表格頁數保存在id為pagescount的input元素中,通過Beautiful Soup獲取該元素的值,即可取得表格總頁數

2)翻頁

利用WebDriver的execute_script API可以執行JavaScript函數。本爬蟲通過調用頁面中的jumppage函數實現翻頁功能。

1.2.3驗證碼處理模塊

本文爬取的全國企業信用信息公示系統處通過瀏覽器標識、用戶token、驗證碼等技術進行爬蟲檢測。利用WebDriver可以很好的繞過前兩種檢測方法,但該網站采用的圖形驗證碼較復雜(圖5),難以進行機器識別[9],本文采用半自動方法處理驗證碼。

圖5 驗證碼示例

驗證碼處理模塊提供以下功能:

1. 提取并顯示驗證碼

2. 獲取用戶輸入

3. 填充并提交驗證碼

4. 錯誤提示

2 結論

本文給出了利用WebDriver實現定向網絡爬蟲的設計思路和技術方案,實現的爬蟲能夠準確快速的爬取所需信息。由于采用了瀏覽器模擬操作,能夠繞過大多數網站的爬蟲檢測策略,降低了爬蟲開發難度和所需工作量。

[1] 周立柱, 林玲. 聚焦爬蟲技術研究綜述[J]. 計算機應用, 2005, 25(9): 1965-1969. ZHOU LZ, LIN L. Survey on the research of focused crawling technique[J]. Conputer Application, 2005, 25(9): 1965-1969. (in Chinese).

[2] 郭世龍, 王晨升. 主題爬蟲設計與實現[J]. 軟件, 2013, 34(12): 107-109.

[3] 李曉堂, 詹峰, 龍能. 基于SNS的社區網絡服務架構與設計[J]. 軟件, 2014, 35(2): 23-24.

[4] Darwin P B, Kozlowski P. AngularJS web application development[M]. Packt Publ., 2013.

[5] Garrett J J. Ajax: A new approach to web applications[J]. 2005.

[6] Leotta M, Clerissi D, Ricca F, et al. Comparing the maintainability of selenium webdriver test suites employing different locators: A case study[C]//Proceedings of the 2013 international workshop on joining academia and industry contributions to testing automation. ACM, 2013: 53-58.

[7] Richardson L. Beautiful soup[J]. Crummy: The Site, 2013.

[8] 洪立印, 徐蔚然. 一種結構化數據關系特征抽取和表示模型[J]. 軟件, 2013, 34(12): 148-151.

[9] Von Ahn L, Blum M, Hopper N J, et al. CAPTCHA: Using hard AI problems for security[C]//International Conference on the Theory and Applications of Cryptographic Techniques. Springer Berlin Heidelberg, 2003: 294-311.

Design and Implement of WebDriver Based Crawler

SHI Yong-kun
(North China Institute of Computing Technology, Beijing 100083, China)

With the development of Web 2.0, the scale of information on the network has been growing explosively. Extracting useful information from the public data on the network has become a new hotspot in the field of data mining. Data acquisition is the first step in data analysis. Web sites in the Web 2.0 era change profoundly both in the content and form, the traditional Web Crawler based on static page analysis faces new challenges. In this paper, we use WebDriver to implement a directed web crawler, which can automatically collect specified web page data, support dynamic technologies such as Ajax, and can identify simple code and bypass crawler detection. Application of the crawler on the national enterprise credit information system achieved good results.

Web Crawler; Web Analysis; Acquirement of Dynamic Content;

TP311

A

10.3969/j.issn.1003-6970.2016.09.022

時永坤(1990-),男,碩士研究生,主要研究方向:計算機技術應用。

猜你喜歡
頁面
微信群聊總是找不到,打開這個開關就好了
大狗熊在睡覺
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
在本機中輕松完成常見PDF操作
電腦愛好者(2022年3期)2022-05-30 10:48:04
移動頁面設計:為老人做設計
工業設計(2016年1期)2016-05-04 03:58:09
Web安全問答(3)
通信技術(2012年4期)2012-02-15 07:10:35
同一Word文檔 縱橫頁面并存
網站結構在SEO中的研究與應用
幾種頁面置換算法的基本原理及實現方法
淺析ASP.NET頁面導航技術
主站蜘蛛池模板: 精品国产毛片| 国产激情无码一区二区三区免费| 日韩精品资源| 成人在线不卡| 亚洲成av人无码综合在线观看| 亚洲日韩久久综合中文字幕| 国产精品亚洲综合久久小说| 国产剧情一区二区| 东京热av无码电影一区二区| 毛片网站在线看| 亚洲综合中文字幕国产精品欧美 | 狠狠色狠狠色综合久久第一次| 亚洲第一国产综合| 欧美人在线一区二区三区| 久久永久视频| 国产精品福利一区二区久久| 亚洲成aⅴ人在线观看| 好吊色国产欧美日韩免费观看| 国产精品亚洲日韩AⅤ在线观看| 2021国产精品自产拍在线| 久久99这里精品8国产| 亚洲一区波多野结衣二区三区| 国产精品自拍合集| 亚洲国产成人自拍| 天堂亚洲网| 国产精品一老牛影视频| 亚洲国产中文欧美在线人成大黄瓜| 国产精品女主播| 欧美精品xx| 人与鲁专区| 女人毛片a级大学毛片免费| 国产日韩欧美成人| 久久大香伊蕉在人线观看热2| 精品久久蜜桃| 天堂成人av| 九色综合视频网| 国产欧美视频一区二区三区| 999国内精品久久免费视频| 亚洲无码高清视频在线观看| 全部免费毛片免费播放| 欧美人与动牲交a欧美精品| 人禽伦免费交视频网页播放| 2020国产精品视频| а∨天堂一区中文字幕| 国产不卡网| 久久久久亚洲av成人网人人软件| 国产精品亚欧美一区二区| a毛片在线| 青青青视频91在线 | 国产另类视频| 伊人久久大线影院首页| 9丨情侣偷在线精品国产| 亚洲无码高清一区| 人妻中文字幕无码久久一区| 男女男精品视频| 91丝袜乱伦| 亚洲另类国产欧美一区二区| jijzzizz老师出水喷水喷出| 中文字幕亚洲电影| 国产一级妓女av网站| 国产农村精品一级毛片视频| 国产原创演绎剧情有字幕的| 精品久久蜜桃| 四虎免费视频网站| 国产午夜精品一区二区三| 国产成人精品视频一区视频二区| 欧美成人一区午夜福利在线| 久久久久国色AV免费观看性色| 极品私人尤物在线精品首页 | 国产超薄肉色丝袜网站| 亚洲成综合人影院在院播放| 国产美女叼嘿视频免费看| 色网站免费在线观看| 在线人成精品免费视频| 久久国产精品国产自线拍| 伊人久久综在合线亚洲2019| 国产另类视频| 四虎永久免费在线| 9cao视频精品| 国产视频只有无码精品| 尤物成AV人片在线观看| 亚洲黄色成人|