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

基于R語言爬蟲技術的網頁信息抓取方法研究

2019-10-21 10:12:43莊旭東王志堅
科技風 2019年6期

莊旭東 王志堅

摘?要:隨著互聯網的快速發展,大數據時代的來臨,網絡上的數據和信息呈爆炸性增長,網絡爬蟲技術越來越受歡迎。本文通過以抓取二手房出售數據為例,探索R語言爬蟲技術的網頁信息抓取方法,發現基于R語言的rvest函數包與SelectorGadget工具實現的網頁信息爬取方法比傳統方法更加簡單快捷。

關鍵詞:R語言;網絡爬蟲;網頁信息抓取;二手房

傳統的網絡搜索引擎在網絡信息資源的搜索中起著非常重要的作用,但它們仍然有很多限制?,F如今,在網頁信息抓取上R語言有其獨特的優勢,用它所編寫的爬蟲語法相對直觀簡潔,規則更加靈活簡單,對操作者要求也相對較低,不必深入研究某一軟件或編程語法,也不必具備很多網頁方面的相關知識,非專業的人甚至是初學者,也可輕松掌握其方法,快捷方便獲得所需的網頁信息。除此之外,R軟件可以非常自如的處理百萬數量級以下的數據,而且其本身就是一個用于統計計算和統計制圖的功能強大的工具,運用R軟件進行操作,所實現的爬蟲技術的網頁信息抓取擷獲得到的數據,可以直接進行統計分析和數據挖掘,省去了數據的再導入或整合的步驟,更加直接方便。

1 研究方法概述

本文運用R軟件中的rvest函數包,來實現抓取網頁信息數據。運用該包中read_html()、html_nodes()和html_text()三個函數與SelectorGadget工具(以下簡寫為工具)相配合。使用read_html()函數抓取整個網頁的原始HTML程式碼,再使用html_nodes()函數從整個網頁的元素中選出由工具獲取的路徑的信息,最后使用html_text()函數將HTML程式碼中的文字資料提取出來得到我們所需要的數據。并且根據網頁的規則,利用for()這一循環函數實現多網頁的信息抓取工作。接著與不同的抓取網頁信息的方法進行比較得出R語言做爬蟲的優勢,并對R語言爬蟲技術的網頁信息抓取方法進行比較展望,也對大數據時代的數據獲取方式與技巧作進一步探索。

2 網絡爬蟲的相關概念與步驟

2.1 網絡爬蟲概念

網絡爬蟲,是一個用于自動提取網頁信息的程序,可以自動從萬維網上下載網頁,并將收集到的信息存儲到本地數據庫中。根據網絡爬蟲系統的結構和實現技術,大致可以分為以下幾種:通用網絡爬蟲、聚焦網絡爬蟲、增量式網絡爬蟲、深層網絡爬蟲。這些爬蟲技術的出現是為了提高爬行的效率,我們需要在更短的時間內盡可能多地獲取有用的頁面信息。

2.2 網絡爬蟲步驟

實現網絡爬蟲的基本步驟有:①首先選取一部分精心挑選的種子URL;②將這些種子放入待抓取URL隊列;③從待抓取URL隊列中取出待抓取在URL,解析DNS,并且得到主機的ip,并將URL對應的網頁下載下來,存儲進已下載網頁庫中,此外,將這些URL放進已抓取URL隊列;④分析已抓取URL隊列中的URL,分析其中的其他URL,并且將URL放入待抓取URL隊列,從而進入下一個循環。

3 基于R語言rvest包實現網頁信息抓取

本文使用SelectorGadget路徑選擇工具,直接定位我們所需要的數據,再結合R語言rvest包,以2018年4月鏈家網廣州二手房出售數據為例,將我們需要的數據從網頁中抓取出來。

3.1 網頁信息抓取準備

3.1.1 SelectorGadget工具

信息的抓取需先定位數據,選取網頁節點,然后獲取的二手房相關信息的網頁路徑信息,具體的步驟如下:

①準備好SelectorGadget工具:打開廣州鏈家網頁面,并打開該工具列,其開啟之后,會顯示在頁面的右下角。

②產生CSS選擇器并顯示該選擇器所能擷取的HTML元素:使用鼠標在網頁上點選要獲取的資料,被點選的HTML元素就會以綠色標示,而這時該工具會嘗試偵測使用者想要抓取的資料的規則,進而產生一組CSS選擇器,并顯示在該工具列上,同時頁面上所有符合這組CSS選擇器的HTML元素都會用黃色標注出來,即目前這組CSS選擇器將會擷取所有綠色與黃色的HTML元素。

③去除不需要的HTML元素:該工具所偵測的CSS選擇器一般會包含一些所不需要的資料,這時可以將那些被標示但要排除在外的HTML元素點除,點除的元素會標示成紅色。

④獲取精準的CSS選擇器:在選擇與排除HTML元素后,所有想要擷取的元素已經全部精準標示出來,可以生成一組精確的CSS選擇器,顯示在該工具列上,可以利用其在R軟件中進行處理。

3.1.2 R軟件相關函數包與使用

實現網頁信息的爬取,R語言的編寫需要引用到xml2、rvest、dplyr、stringr等的函數包里的函數,故而下載這幾個函數包,并且加載所需的包。具體做法的是使用install.packages()與library()函數進行實現,也可以將這些包下載到本地安裝。

3.2 網頁信息抓取實現

下面以鏈家網廣州二手房出售為例,根據前面的步驟,首先使用read_html()函數抓取整個鏈家網頁的原始HTML程式碼,再使用html_nodes()函數從整個鏈家網頁的元素中選出由SelectorGadget工具獲取的路徑的信息,最后使用html_text()函數將HTML程式碼中的文字資料提取出來得到我們所需要的鏈家網數據。

rvest包的幾個函數針對了某個網頁進行數據的爬取,但可以發現,廣州鏈家網的二手房數據有很多頁,并且有用的信息包括房名、描述、位置、房價等,因此,選用循環函數for(),編寫出如下的函數,將鏈家網上所有有分析價值的信息都爬取出來,并寫成csv格式的文件,便于進一步分析,由于篇幅有限,在此就列出部分結果,如下表所示。

上表給出了廣州部分二手房的基本信息。

可見,運用rvest包結合CSS選擇器能夠快速實現R語言下的網絡數據抓取,并適當結合stringr包中的字符串處理函數對網頁數據進行清洗和整理,能十分方便有效地獲得網頁數據并且可以直接進行數據處理和分析。通過直接利用所爬取的數據,對房價是否符合正態分布進行簡單地分析,展示R語言實現網頁數據爬取之后對獲得的數據進行分析的便利性和優越性。

4 rvest包與其他網頁信息抓取方法比較分析

R語言實現網絡爬蟲有兩種方法,一種是利用本文所提到的rvest包,另外一種是利用RCurl包和XML包。

由rvest函數包配合SelectorGadget工具實現R語言在網頁信息爬取上的應用這個方法,與采用XML包和RCurl包進行爬取相比,更加簡單,代碼更加簡潔直觀。R中的rvest包將原本復雜的網頁爬蟲工作壓縮到讀取網頁,檢索網頁和提取文本,使其變得非常簡單,而且根據網頁的規律,運用for()循環函數進行實現多張網頁的信息爬取。而使用XML包和RCurl包進行實現,則需要一些關于網頁的基礎知識,模擬瀏覽器行為偽裝報頭,接著訪問頁面解析網頁,然后定位節點獲取信息,最后再將信息整合起來。該方法更為困難繁瑣,在訪問網頁時有時并不能順利讀取解析,并且在選取節點的時候需要HTML的基礎知識,在網頁源代碼中找尋,有些網頁的源代碼相當復雜,并不易于定位節點。

兩種實現的方法所能達到的效果基本大同小異,而且利用for()循環函數可以實現多網頁數據的爬取,從上手角度上講,rvest包顯示是更勝一籌,是XML包和RCurl包的進化,更加簡潔方便。

而除此之外,用Python實現網絡爬蟲也是很受歡迎。Python的pandas模塊工具借鑒了R的dataframes,而R中的rvest包則參考了Python的BeautifulSoup,兩種語言在一定程度上存在互補性。Python在實現網絡爬蟲上更有優勢,但就網頁數據爬取方面而言,基于R語言工具進行實現,更加簡潔方便,而且R在統計分析上是一種更高效的獨立數據分析工具,運用R語言獲取的數據避免了平臺環境轉換的繁瑣,從數據獲取、數據清洗到數據分析,代碼環境、平臺保持了一致性。

參考文獻:

[1]吳睿,張俊麗.基于R語言的網絡爬蟲技術研究[J].科技資訊,2016,14(34):35-36.

[2]西蒙·蒙策爾特.基于R語言的自動數據收集:網絡抓取和文本挖掘實用指南[M].機械工業出版社,2016.

[3]劉金紅,陸余良.主題網絡爬蟲研究綜述[J].計算機應用研究,2007,24(10):26-29.

主站蜘蛛池模板: 日日拍夜夜操| 精品人妻AV区| 草逼视频国产| 免费精品一区二区h| 亚洲最猛黑人xxxx黑人猛交| 91久久大香线蕉| 一级片免费网站| 国产青榴视频| 国产欧美在线观看一区| 国产一区二区三区在线观看视频| 色成人亚洲| a毛片基地免费大全| 欧美中文一区| 成人在线不卡| 国产国产人成免费视频77777| 尤物成AV人片在线观看| 国产无码精品在线播放| 久久久精品久久久久三级| 亚洲精品无码高潮喷水A| 日本亚洲欧美在线| 嫩草影院在线观看精品视频| 亚洲第一极品精品无码| 三区在线视频| 久久成人国产精品免费软件| 中文字幕永久视频| 人妻丰满熟妇αv无码| 99精品视频在线观看免费播放| 欧洲在线免费视频| 国产欧美性爱网| 欧美精品在线观看视频| 欧美日韩在线第一页| 91精品国产一区自在线拍| 蝴蝶伊人久久中文娱乐网| 国产高清免费午夜在线视频| 免费人成网站在线观看欧美| 欧美国产中文| 538精品在线观看| 人人91人人澡人人妻人人爽| 99视频只有精品| 国内精品小视频福利网址| 日本www在线视频| 天堂成人在线| 精品乱码久久久久久久| 午夜毛片福利| 免费观看无遮挡www的小视频| 久久精品无码一区二区日韩免费| 国产性精品| 亚洲视频免费在线| 日本一区中文字幕最新在线| 日韩国产高清无码| 欧美日韩午夜| 亚洲第一极品精品无码| 一区二区三区高清视频国产女人| 欧美人与动牲交a欧美精品| WWW丫丫国产成人精品| 99人妻碰碰碰久久久久禁片| 国产久草视频| 免费高清自慰一区二区三区| 99视频在线观看免费| 亚洲一区二区三区国产精华液| 国产特一级毛片| 91啦中文字幕| 成人福利在线看| 亚洲欧洲日产国产无码AV| 在线色国产| 美女被操91视频| 精品伊人久久久大香线蕉欧美 | 国产精品妖精视频| 伊人久热这里只有精品视频99| 国产屁屁影院| 99久久免费精品特色大片| 久久九九热视频| 亚洲精品片911| 日本精品αv中文字幕| 欧美一级高清免费a| 久久国产精品嫖妓| 免费毛片a| 成人在线亚洲| 亚洲成在人线av品善网好看| 无码精油按摩潮喷在线播放| 国产清纯在线一区二区WWW| 一边摸一边做爽的视频17国产 |