• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于網(wǎng)絡(luò)爬蟲的新浪微博數(shù)據(jù)抓取技術(shù)

      2019-02-18 01:15:52王金峰彭禹王明鐘聲趙雪輝
      關(guān)鍵詞:新浪微博網(wǎng)絡(luò)爬蟲大數(shù)據(jù)

      王金峰 彭禹 王明 鐘聲 趙雪輝

      【摘 要】隨著人工智能和大數(shù)據(jù)時代的到來,各種數(shù)據(jù)都變得越來越重要。新浪微博作為國內(nèi)最大的社交平臺之一,因為其擁有大量用戶,每天都產(chǎn)生著龐大的數(shù)據(jù),所以如何快速獲取到這些數(shù)據(jù)并實現(xiàn)結(jié)構(gòu)化的存儲以便后續(xù)利用是一個挑戰(zhàn)。論文對微博網(wǎng)頁端平臺進行分析,選用Scrapy框架和Requests、Selenium等工具,提出了對微博數(shù)據(jù)進行抓取的高可行性方案,該方案能夠?qū)崿F(xiàn)多用戶同時抓取,獲得微博用戶的關(guān)系數(shù)據(jù)和微博內(nèi)容等。

      【關(guān)鍵詞】網(wǎng)絡(luò)爬蟲;新浪微博;大數(shù)據(jù)

      【Keywords】web crawler; sina microblog; big data

      【中圖分類號】TP311.1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?【文獻標志碼】A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 【文章編號】1673-1069(2019)01-0162-02

      1 引言

      隨著移動互聯(lián)網(wǎng)的飛速發(fā)展,人們越來越多地在社交網(wǎng)絡(luò)上發(fā)表自己的見解,分享自己的生活,與他人進行交流討論。新浪微博作為國內(nèi)最大的社交平臺之一,同時也成了各類消息發(fā)布的最主要渠道之一。截至2017年9月,微博月活躍用戶3.76億,日活躍用戶1.65億,每天都有用戶發(fā)布上億條微博,評論、轉(zhuǎn)發(fā)或點贊其他微博。一個如此龐大和公開的社交平臺,每天都能產(chǎn)生海量信息,能為各種輿情監(jiān)控、商業(yè)推廣分析、自然語言處理等系統(tǒng)提供大量的數(shù)據(jù)支持[1]。在國外,開展了針對于Twitter和

      Facebook等社交平臺的一系列研究,但是不同于國外的Twitter和Facebook等平臺,微博官方并沒有提供相關(guān)接口給人們下載與微博相關(guān)的數(shù)據(jù)集,并且微博的登錄、瀏覽等操作都有較敏感的反爬蟲機制,這給數(shù)據(jù)的采集帶來了困難,對普通的想獲取相關(guān)數(shù)據(jù)的人員來說是個極大的挑戰(zhàn)。因此,快速獲得微博數(shù)據(jù)的方法就是構(gòu)建一個穩(wěn)定高效的爬蟲抓取系統(tǒng)。

      2 網(wǎng)絡(luò)爬蟲

      2.1 原理

      網(wǎng)絡(luò)爬蟲(Web Crawler),是自動地抓取萬維網(wǎng)信息的程序或者腳本,它們被廣泛用于互聯(lián)網(wǎng)搜索引擎或其他類似網(wǎng)站。爬蟲一般分為數(shù)據(jù)采集、處理和儲存三個部分。傳統(tǒng)爬蟲從一個或若干初始網(wǎng)頁的URL開始,獲得初始網(wǎng)頁上的URL,在抓取網(wǎng)頁的過程中,不斷從當前頁面上抽取新的URL放入隊列,直到滿足系統(tǒng)的一定停止條件。

      2.2 網(wǎng)絡(luò)爬蟲框架Scrapy

      Scrapy是Python開發(fā)的一個快速、可擴展的Web抓取框架,用于抓取Web站點并從頁面中提取結(jié)構(gòu)化的數(shù)據(jù)。通過Scrapy中的Spider模塊,能方便地定義網(wǎng)址爬取和數(shù)據(jù)提取的規(guī)則。

      3 微博爬蟲策略

      現(xiàn)在各種爬蟲的搜索策略[2]主要為:深度優(yōu)先搜索策略、廣度優(yōu)先搜索策略、非完全PageRank策略以及大站優(yōu)先搜索策略。

      微博跟其他普通網(wǎng)站相比,動態(tài)性和網(wǎng)頁結(jié)構(gòu)都比較復(fù)雜,其對于爬蟲的防范也更加嚴格,普通的爬蟲程序一般不能直接獲取到相應(yīng)的網(wǎng)頁內(nèi)容,但其網(wǎng)頁內(nèi)容中的數(shù)據(jù)格式較為統(tǒng)一。所以,針對微博相關(guān)的瀏覽機制,運用一些工具和方法,就可以較為方便地獲取到微博中的有關(guān)數(shù)據(jù)。

      3.1 微博爬取入口選擇

      微博網(wǎng)頁端基本分為PC端用戶入口(域名:weibo.com)和移動端用戶入口(域名:weibo.cn)。這兩種頁面雖然展現(xiàn)內(nèi)容的方式和策略有所區(qū)別,但能獲取的數(shù)據(jù)基本相同,且由于PC入口為大多數(shù)網(wǎng)頁端用戶瀏覽微博的主要途徑,從安全性和用戶體驗等角度考慮,該入口交互設(shè)計都更復(fù)雜,并設(shè)置有許多動態(tài)刷新的內(nèi)容,這給數(shù)據(jù)的爬取造成了一定難度,而移動端網(wǎng)頁可以直接發(fā)送不同的HTTP請求來獲取相應(yīng)的內(nèi)容[3],相比

      PC端而言,后者網(wǎng)頁結(jié)構(gòu)更加簡單,設(shè)置的反爬措施也更少,所以選取通過移動網(wǎng)頁入口來進行數(shù)據(jù)的爬取和解析。

      3.2 微博登錄和爬取

      在微博中進行網(wǎng)頁瀏覽是需要進行登錄并保持登錄狀態(tài)的,否則是無法獲取到相關(guān)信息的。我們使用多個微博賬戶通過Selenium自動化工具加Firefox瀏覽器無頭模式訪問微博登錄頁面進行登錄,登錄成功后將其相應(yīng)的cookies保存起來。為了提高爬取的穩(wěn)定性和成功率,還需要建立一個User-Agent池,再對Scrapy的middlewares模塊進行擴展,在其中的process_request方法里對Scrapy的request加入自動化登錄微博后獲得并已保存在數(shù)據(jù)庫的Cookies,在Scrapy請求微博服務(wù)器時使用一個可用的Cookies并隨機抽取一個User-Agent進行偽裝,這樣就能順利訪問頁面,減少爬蟲請求被微博服務(wù)器屏蔽和賬戶被封號的概率。采用的抓取策略是廣度優(yōu)先搜索,通過社交關(guān)系[4],抓取用戶的關(guān)系數(shù)據(jù)。只要利用一小群“種子用戶”,每個用戶都對應(yīng)有一個微博ID,通過使用微博ID也就能獲得該用戶的全部個人信息和他所發(fā)布的微博。以某個“種子用戶”為起點,獲得他的關(guān)注人和粉絲等關(guān)系[5],再對其好友進行關(guān)系搜索,并按此方法遞歸爬取,將得到的用戶去重[6]和排序,加入待爬取的隊列,從而得到一個龐大的待爬取的用戶數(shù)據(jù)集。理論上,這可以爬取到微博上所有的用戶信息。

      4 微博數(shù)據(jù)抓取

      4.1 微博信息的爬取

      得到用戶ID后,就能通過發(fā)起不同的HTTP請求訪問他們的個人信息、微博列表、粉絲列表和關(guān)注列表等頁面,將頁面下載之后,能看到這些頁面都是有固定結(jié)構(gòu)的HTML代碼,只要在Scrapy里自定義的Spider中通過正則表達式或者Xpath等工具分別對Response結(jié)果進行不同的解析,就能得到相應(yīng)的結(jié)構(gòu)化數(shù)據(jù)。

      一般的爬取只需保留四類數(shù)據(jù):①微博信息;②個人信息;③用戶關(guān)系(只保留關(guān)注者的信息);④微博評論信息。例如,微博信息主要抓取的是該用戶發(fā)布過的所有微博的內(nèi)容、時間、轉(zhuǎn)發(fā)數(shù)、評論數(shù)、點贊數(shù)、發(fā)布微博時的地點(經(jīng)緯度坐標)以及發(fā)布微博所用的設(shè)備或平臺等,如果是轉(zhuǎn)發(fā)微博,還可以獲得源微博的URL鏈接等。

      同時,微博下面的評論與回復(fù)也可以按需求進行抓取并以時間排序,作為對話語料數(shù)據(jù)保存。

      4.2 低價值信息的過濾

      微博中因為各種各樣的原因[7],通常會存在一些爬取價值不大的賬號和信息,例如,常見的無人使用的“僵尸賬號”或一些“惡意營銷號”等,如果不加處理而直接爬取則會浪費許多爬取性能和儲存空間,這就需要過濾待爬取的原數(shù)據(jù)。

      目前,在爬取過程中不能很好地識別或直接判斷無價值信息,但微博用戶可以設(shè)定某些條件來達到過濾的目的[8],如設(shè)置被爬取的主體賬號的粉絲和關(guān)注數(shù)閾值在5000之內(nèi),判斷其是否有正常的頭像,昵稱是否是常見的“垃圾賬號”類的昵稱等,也可針對不同的爬取需求來設(shè)置爬取對象的屬性,如地域、年齡、發(fā)布的微博數(shù)等,從而得到相應(yīng)的結(jié)果數(shù)據(jù)。

      5 結(jié)語

      本爬蟲從技術(shù)和思路上提供了獲取微博上相關(guān)數(shù)據(jù)的一些方法,對于中小型的數(shù)據(jù)需求有較好的適用性,并且基于Scrapy框架進行了擴展,相比于一般的爬蟲系統(tǒng),有著更好的應(yīng)對反爬蟲的機制,提高了爬取的效率和穩(wěn)定性。

      作為主流社交互動平臺,在當今大數(shù)據(jù)時代,微博存在著巨大的可挖掘價值。如何提供更快、更準確的數(shù)據(jù)爬取技術(shù),將會是今后極具研究價值和挑戰(zhàn)的方向。

      【參考文獻】

      【1】張賽,徐恪,李海濤.微博類社交網(wǎng)絡(luò)中信息傳播的測量與分析[J].西安交通大學(xué)報,2013,47(2):124-130.

      【2】張俊林.這就是搜索引擎:核心技術(shù)詳解[M].北京:電子工業(yè)出版社,2012.

      【3】周立柱,林玲.聚焦爬蟲技術(shù)研究綜述[J].計算機應(yīng)用,2005,25(9):1965-1969.

      【4】劉玲,楊長春.一種新的微博社區(qū)用戶影響力評估算法[J].計算機應(yīng)用與軟件,2017,34(7):212-216+261.

      【5】馮靜.微博用戶排名機制的研究[D].秦皇島:燕山大學(xué),2012.

      【6】嚴磊,丁賓,姚志敏,等.基于MD5去重樹的網(wǎng)絡(luò)爬蟲的設(shè)計與優(yōu)化[J].計算機應(yīng)用與軟件,2015,32(2):325-329+333.

      【7】劉晶,李琳,李石君.基于社交網(wǎng)絡(luò)大規(guī)模行為數(shù)據(jù)的用戶關(guān)系研究[J].計算機應(yīng)用與軟件,2016,33(7):38-41.

      【8】康書龍,葉施仁,肖春.基于用戶質(zhì)量的微博社區(qū)博主影響力排序算法[J].計算機工程與應(yīng)用,2016,5(4):128-132.

      猜你喜歡
      新浪微博網(wǎng)絡(luò)爬蟲大數(shù)據(jù)
      煉鐵廠鐵量網(wǎng)頁數(shù)據(jù)獲取系統(tǒng)的設(shè)計與實現(xiàn)
      新浪微博熱點事件的輿論傳播與群體心理
      新浪微博娛樂明星的社會網(wǎng)絡(luò)分析
      時代金融(2016年29期)2016-12-05 17:09:47
      社交媒體平臺醫(yī)患關(guān)系報道特點研究
      今傳媒(2016年8期)2016-10-17 23:50:55
      基于大數(shù)據(jù)背景下的智慧城市建設(shè)研究
      科技視界(2016年20期)2016-09-29 10:53:22
      基于社會網(wǎng)絡(luò)分析的權(quán)威網(wǎng)頁挖掘研究
      主題搜索引擎中網(wǎng)絡(luò)爬蟲的實現(xiàn)研究
      微博的社會公信力現(xiàn)狀探究及其未來構(gòu)建研究
      商(2016年21期)2016-07-06 17:23:54
      淺析如何應(yīng)對網(wǎng)絡(luò)爬蟲流量
      中國市場(2016年23期)2016-07-05 04:35:08
      英吉沙县| 右玉县| 石屏县| 邢台县| 石狮市| 阜南县| 浏阳市| 二连浩特市| 嘉禾县| 合江县| 昭觉县| 新津县| 黄冈市| 辰溪县| 平和县| 牡丹江市| 徐州市| 满洲里市| 罗城| 綦江县| 东阿县| 扎鲁特旗| 尖扎县| 西吉县| 潮安县| 赣榆县| 南开区| 都匀市| 杭州市| 高雄县| 武宣县| 临江市| 铜川市| 嫩江县| 和硕县| 六安市| 渑池县| 伊吾县| 巩留县| 平谷区| 集安市|