• 
    

    
    

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

      ?

      基于Scrapy的新浪微博數(shù)據(jù)爬蟲研究

      2023-06-22 17:02:47鄧曉璐姚松
      現(xiàn)代信息科技 2023年3期
      關(guān)鍵詞:裙角爬蟲使用者

      鄧曉璐 姚松

      摘? 要:為了快速獲取到新浪微博中的數(shù)據(jù),在學(xué)習(xí)和分析當(dāng)前爬蟲技術(shù)的原理、核心模塊和運(yùn)行過程的基礎(chǔ)上,文章將探索實(shí)現(xiàn)一個(gè)基于Scrapy框架的網(wǎng)絡(luò)爬蟲工具,以完成數(shù)據(jù)捕獲等目標(biāo)。該工具可根據(jù)一個(gè)或多個(gè)微博關(guān)鍵詞搜索相關(guān)微博信息,并將搜索結(jié)果寫入本地文件。實(shí)驗(yàn)結(jié)果顯示:該爬蟲擁有較好的加速比,可以快速地獲取數(shù)據(jù),并且這些數(shù)據(jù)具有一定的實(shí)時(shí)性和準(zhǔn)確性。

      關(guān)鍵詞:Scrapy;新浪微博;數(shù)據(jù)抓取

      中圖分類號(hào):TP391.3? 文獻(xiàn)標(biāo)識(shí)碼:A? 文章編號(hào):2096-4706(2023)03-0044-04

      Research on MicroBlog Data Crawler Based on Scrapy

      DENG Xiaolu, YAO Song

      (Guangdong Polytechnic of Science and Technology, Zhuhai? 519090, China)

      Abstract: In order to quickly obtain the data in MicroBlog, based on learning and analyzing the principle, core modules and operation process of current crawler technology, this paper will explore and implement cyber crawler tool based on the Scrapy framework to achieve data capture and other goals. This tool can search relevant MicroBlog information according to one or more MicroBlog keywords, and write the search results into local files. The experimental results show that the crawler has a better speedup ratio and can quickly obtain data, and the data have a certain degree of real-time and accuracy.

      Keywords: Scrapy; MicroBlog; data capture

      0? 引? 言

      近年來(lái),新興數(shù)據(jù)平臺(tái)的地位與日俱增,越來(lái)越多的人更加樂意通過網(wǎng)絡(luò)來(lái)關(guān)注當(dāng)前社會(huì)的熱點(diǎn)話題。微博作為新興數(shù)據(jù)平臺(tái)之一,自其投入開放以來(lái),逐漸被越來(lái)越多的人所使用,同時(shí),微博話題也正以指數(shù)的趨勢(shì)不斷增長(zhǎng),這些話題涉及眾多維度。在信息爆炸的時(shí)代,微博主題的不同指標(biāo)成為研究人員的重要研究數(shù)據(jù),比如近幾年火爆的推薦系統(tǒng)等。因此,如何高質(zhì)量且個(gè)性化的獲取微博數(shù)據(jù)對(duì)研究者和運(yùn)營(yíng)者具有非常重要的意義。

      然而,新浪微博并未提供相應(yīng)的數(shù)據(jù)接口供研究人員使用,目前國(guó)內(nèi)有一些網(wǎng)站提供公開數(shù)據(jù),但這些數(shù)據(jù)量非常有限,并且類似于推薦系統(tǒng)這類研究,對(duì)數(shù)據(jù)的實(shí)時(shí)性具有很高的要求。眾所周知,微博熱點(diǎn)話題隨著時(shí)間的推移、人們關(guān)注程度而不斷更新的,如以往的話題熱點(diǎn)可能成為現(xiàn)在的非熱點(diǎn),從而使其推薦價(jià)值降低;同樣的,一條非熱點(diǎn)話題也可能變?yōu)楝F(xiàn)在的熱點(diǎn)話題。微博話題的這些特征也給微博話題推薦算法帶來(lái)了越來(lái)越多的挑戰(zhàn),因此,如何提高抓取微博數(shù)據(jù)的實(shí)時(shí)性也有重要的研究?jī)r(jià)值。

      本文所提供的爬蟲工具可以模擬客戶端操作,如用戶登錄、查看微博話題、查看評(píng)論等,通過設(shè)置某些條件,獲取某個(gè)時(shí)間段內(nèi)一個(gè)或多個(gè)微博關(guān)鍵詞搜索結(jié)果,并將結(jié)果寫入本地文件且永久保存。所謂微博關(guān)鍵詞搜索即:搜索正文中包含指定關(guān)鍵詞的微博;本系統(tǒng)還可以指定搜索的時(shí)間范圍,能更好地匹配研究者的研究需求;此外,本系統(tǒng)還可以通過設(shè)置參數(shù)篩選各種要搜索的微博類型,如原創(chuàng)微博、熱門微博、關(guān)注人微博、媒體微博等。使用本爬蟲一方面可以節(jié)省研究人員的時(shí)間,讓他們專注于數(shù)據(jù)分析上,同時(shí)也更加能夠匹配研究人員的需求。

      1? 網(wǎng)絡(luò)爬蟲現(xiàn)狀

      網(wǎng)絡(luò)爬蟲是自動(dòng)提取網(wǎng)頁(yè)數(shù)據(jù)的程序,近幾年關(guān)于網(wǎng)絡(luò)爬蟲的研究不計(jì)其數(shù),謝蓉蓉[1]等人通過分析網(wǎng)絡(luò)爬蟲操作的基本流程,按照流程提取了大數(shù)據(jù)的關(guān)鍵特征,然后根據(jù)特征提取結(jié)果提出了基于網(wǎng)絡(luò)爬蟲的數(shù)據(jù)捕獲策略;李俊華[2]等人利用Python網(wǎng)絡(luò)爬蟲的相關(guān)知識(shí)對(duì)豆瓣電影評(píng)論進(jìn)行了一次抓取,并使用可視化庫(kù)生成單詞云并對(duì)其進(jìn)行分析。王鋒[3]等人針對(duì)當(dāng)前影響爬蟲程序效率的許多關(guān)鍵因素,在研究爬蟲程序內(nèi)部運(yùn)行機(jī)制的基礎(chǔ)上,優(yōu)化了爬蟲程序的架構(gòu)并改進(jìn)了相關(guān)算法。SU[4]等人首先分析了爬蟲的功能結(jié)構(gòu),然后提出了一個(gè)三層爬蟲模型。針對(duì)海量專題組織數(shù)據(jù)的空間信息和屬性信息缺失的問題,楊宇[5]等人提出了一種基于爬蟲框架的專題組織數(shù)據(jù)空間信息采集方法,以專題組織信息網(wǎng)站為信息源,以深度優(yōu)先策略爬蟲為信息獲取方式。曾建榮[6]等人提出了一種面向多數(shù)據(jù)源的網(wǎng)絡(luò)爬蟲數(shù)據(jù)采集技術(shù),解決了現(xiàn)有爬蟲技術(shù)不便于采集多源數(shù)據(jù)的問題。在研究新浪微博、人民日?qǐng)?bào)、百度百科全書、百度貼吧、微信公眾號(hào)、東方財(cái)富吧六大媒體平臺(tái)上的數(shù)據(jù)采集爬蟲的基礎(chǔ)上,采用Servlet后臺(tái)調(diào)度技術(shù),整合面向多數(shù)據(jù)源的網(wǎng)絡(luò)爬蟲,解決了不同媒體平臺(tái)的數(shù)據(jù)采集問題。張寧蒙[7]等人提出了一種結(jié)合LDA的卷積神經(jīng)網(wǎng)絡(luò)主題爬蟲,將主題判斷模塊視為一個(gè)文本分類問題,并使用深度神經(jīng)網(wǎng)絡(luò)來(lái)提高主題爬蟲的性能。在卷積層之后,對(duì)LDA提取的主題特征進(jìn)行拼接,以彌補(bǔ)傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)中主題信息的不足。汪巋等人[8]提出融合LDA的卷積神經(jīng)網(wǎng)絡(luò)主題爬蟲,將主題判斷模塊視為文本分類問題,利用深度神經(jīng)網(wǎng)絡(luò)提升主題爬蟲的性能。李俊華[2]龍香妤[9]張勝敏[10]等人面對(duì)獲取有用信息的需求,在通用網(wǎng)絡(luò)爬蟲技術(shù)的基礎(chǔ)上,利用Python軟件對(duì)爬蟲數(shù)據(jù)采集器進(jìn)行了深度優(yōu)化。然而新浪微博一方面具有反爬蟲機(jī)制,一方面又具有較復(fù)雜的登錄機(jī)制,因此,普通爬蟲很難直接拿過來(lái)直接獲取微博數(shù)據(jù),針對(duì)這種問題,本文開發(fā)出一款專門適用于新浪微博的爬蟲工具。

      2? 模擬用戶登錄

      由于登錄是新浪微博訪問數(shù)據(jù)的必要步驟,所以本爬蟲工具首先需要解決的問題就是如何登錄微博。通過分析微博平臺(tái)代碼可知,登錄微博時(shí)客戶端需要向服務(wù)器端發(fā)送請(qǐng)求,服務(wù)器端會(huì)在收到請(qǐng)求后生成并返回密鑰給客戶端,客戶端收到密鑰后結(jié)合著用戶的ID和密碼一并發(fā)給服務(wù)器端,微博服務(wù)器端驗(yàn)證通過后則進(jìn)入當(dāng)前用戶的登錄狀態(tài)。登錄具體方式描述如下:

      首先使用者需要設(shè)置cookie值。DEFAULT_REQUEST_HEADERS中的cookie是需要填的值,其獲取方式為:用Chrome打開https://weibo.com/。使用者模擬用戶登錄成功之后,按F12打開開發(fā)者工具,在開發(fā)者工具的Network->whitelist->Request Headers,找到"Cookie:"后的值,這就是要找的cookie值,將其復(fù)制即可,如圖1所示。

      3? 設(shè)置爬蟲參數(shù)

      使用者應(yīng)按照自身需求設(shè)置搜索關(guān)鍵詞,本爬蟲支持搜索包含一個(gè)或多個(gè)關(guān)鍵詞、分別搜索包括多個(gè)關(guān)鍵詞、搜索某個(gè)微博話題等。使用者在設(shè)置關(guān)鍵詞時(shí),可以直接通過代碼設(shè)置,也可以通過文本文檔設(shè)置后,將其傳到代碼中。具體示例如下:

      首先,用戶需要修改setting.py文件夾中的KEYWORD_LIST參數(shù),接著使用者根據(jù)不同需求進(jìn)行以下設(shè)置:

      如用戶需要搜索微博正文包含一個(gè)指定關(guān)鍵詞,如“聽_貓?jiān)谌菇恰保?/p>

      KEYWORD_LIST = ['聽_貓?jiān)谌菇?];

      如用戶需要搜索微博正文包含多個(gè)關(guān)鍵詞,如想要分別獲得“聽_貓?jiān)谌菇恰焙汀拌磋础钡乃阉鹘Y(jié)果:

      KEYWORD_LIST = ['聽_貓?jiān)谌菇?, '璐璐'];

      如用戶需要搜索微博正文同時(shí)包含多個(gè)關(guān)鍵詞的微博,如同時(shí)包含“聽_貓?jiān)谌菇恰焙汀拌磋础蔽⒉┑乃阉鹘Y(jié)果:

      KEYWORD_LIST = ['聽_貓?jiān)谌菇?璐璐'];

      如用戶需要搜索指定微博話題,即包含#的內(nèi)容,如“#聽_貓?jiān)谌菇?”:

      EYWORD_LIST = ['#聽_貓?jiān)谌菇?'];

      本爬蟲支持設(shè)置是否進(jìn)一步搜索的閾值,一般情況下,如果在某個(gè)搜索條件下,搜索結(jié)果通常會(huì)有很多,則搜索結(jié)果應(yīng)該有50頁(yè)微博,多于50頁(yè)不顯示。當(dāng)總頁(yè)數(shù)等于50時(shí),程序認(rèn)為搜索結(jié)果可能沒有顯示完全,所以會(huì)繼續(xù)細(xì)分。比如,若當(dāng)前是按天搜索的,程序會(huì)把當(dāng)前的1個(gè)搜索分成24個(gè)搜索,每個(gè)搜索的條件粒度是小時(shí),這樣就能獲取在天粒度下無(wú)法完全獲取的微博。同理,如果小時(shí)粒度下總頁(yè)數(shù)仍然是50,系統(tǒng)則會(huì)繼續(xù)細(xì)分,以此類推。然而,有一些關(guān)鍵詞,搜索結(jié)果即便很多,也只顯示40多頁(yè)。所以此時(shí)如果閾值是50,程序會(huì)認(rèn)為只有這么多微博,不再繼續(xù)細(xì)分,導(dǎo)致很多微博沒有獲取。因此為了獲取更多微博,閾值應(yīng)該是小于50的數(shù)字。但是如果設(shè)置的特別小,如設(shè)置為1,這樣即便結(jié)果真的只有幾頁(yè),程序也會(huì)細(xì)分,這些沒有必要的細(xì)分會(huì)使程序速度降低。因此,將程序的閾值設(shè)置為40~46之間。如使用者將搜索閾值設(shè)置為46,只需要設(shè)置代碼FURTHER_THRESHOLD = 46即可。

      設(shè)置好搜索閾值后,使用者需要設(shè)置結(jié)果保存類型,第一個(gè)代表去重,第二個(gè)代表寫入csv文件,第三個(gè)代表下載圖片,第四個(gè)代表下載視頻。后面的數(shù)字代表執(zhí)行的順序,數(shù)字越小優(yōu)先級(jí)越高。若使用者只要寫入部分類型,可以把不需要的類型用“#”注釋掉,以節(jié)省資源。本系統(tǒng)還可以篩選要搜索的微博類型,0代表搜索全部微博,1代表搜索全部原創(chuàng)微博,2代表熱門微博,3代表關(guān)注人微博,4代表認(rèn)證用戶微博,5代表媒體微博,6代表觀點(diǎn)微博。如使用者需要搜索全部原創(chuàng)微博,只需設(shè)置代碼WEIBO_TYPE = 1即可。

      在爬蟲系統(tǒng)爬取數(shù)據(jù)的過程中,使用者需要設(shè)置等待時(shí)間,所謂等待時(shí)間,即訪問完一個(gè)頁(yè)面再訪問下一個(gè)時(shí)需要等待的時(shí)間,默認(rèn)為10秒。系統(tǒng)支持篩選結(jié)果微博中必須包含的內(nèi)容,0代表不篩選,獲取全部微博,1代表搜索包含圖片的微博,2代表包含視頻的微博,3代表包含音樂的微博,4代表包含短鏈接的微博。如,當(dāng)使用者想需要爬蟲等待時(shí)間為15秒,且在搜索中包含圖片的微博,只需設(shè)置代碼DOWNLOAD_DELAY = 15;CONTAIN_TYPE = 1即可。

      設(shè)置好搜索關(guān)鍵詞后,使用者可以設(shè)置搜索微博發(fā)布的時(shí)間范圍,即微博發(fā)布的起始日期和結(jié)束日期。本系統(tǒng)篩選微博的發(fā)布地區(qū)時(shí),可以精確到省或直轄市,值不應(yīng)包含“省”或“市”等字,如想篩選北京市的微博請(qǐng)用“北京”而不是“北京市”,想要篩選安徽省的微博請(qǐng)用“安徽”而不是“安徽省”,可以寫多個(gè)地區(qū),注意本系統(tǒng)只支持省或直轄市的名字,不支持省下面的市名及直轄市下面的區(qū)縣名,不篩選則用“全部”。如,當(dāng)使用者篩選微博發(fā)布日期為2020-06-01到2020-06-02之間且發(fā)布地區(qū)為“山東”的微博時(shí),只需設(shè)置代碼START_DATE = '2022-05-01;END_DATE = '2022-05-02';REGION =['山東']即可。

      其中,各個(gè)變量表示的含義如表1所示。

      4? 實(shí)驗(yàn)與分析

      4.1? 并行效率分析

      對(duì)本文爬蟲的并行效率進(jìn)行分析,分別在不同CPU核數(shù)的計(jì)算機(jī)上抓取了以“校企合作”為關(guān)鍵詞的微博,其中運(yùn)行設(shè)備的具體配置與型號(hào)如表2所示。

      如圖2和表3所示,隨著CPU核數(shù)的增加,該爬蟲的加速比呈線性增長(zhǎng)趨勢(shì)。

      由圖2可得出結(jié)論:該爬蟲在CPU核數(shù)為2時(shí)并無(wú)顯著的加速效果,但隨著CPU核數(shù)的增加,加速比也呈現(xiàn)線性增加的趨勢(shì),這表明該爬蟲在抓取大量數(shù)據(jù)時(shí)具有很好的加速效果。

      4.2? 校企合作數(shù)據(jù)分析

      在該實(shí)驗(yàn)中,本文針對(duì)關(guān)鍵詞“校企合作”,獲取了在2012年1月至2022年1月這個(gè)時(shí)間段內(nèi)的共2 904 270條微博,部分結(jié)果如圖3所示,并且將獲取微博所發(fā)布的時(shí)間記錄下并作圖分析。

      如圖4所示,是“校企合作”相關(guān)微博的發(fā)布數(shù)量在2012年到2022年不同年份變化曲線,可以看出:有關(guān)于“校企合作”的話題數(shù)量在總體上呈現(xiàn)出指數(shù)增長(zhǎng)的趨勢(shì),由此可以看出,此爬蟲工具具有非常重要的應(yīng)用價(jià)值,使用者完全可以根據(jù)其研究方向及需要進(jìn)行數(shù)據(jù)的實(shí)時(shí)爬取,從而進(jìn)行必要的研究分析。

      5? 結(jié)? 論

      本文以為社交網(wǎng)絡(luò)研究者們提供優(yōu)質(zhì)的研究數(shù)據(jù)為目標(biāo),設(shè)計(jì)了一款方便快捷的新浪微博數(shù)據(jù)獲取工具。經(jīng)實(shí)驗(yàn)驗(yàn)證,該工具具有使用方便、支持關(guān)鍵字匹配、支持并行的特點(diǎn),使用者只需提供微博賬號(hào)、設(shè)置好抓取的微博關(guān)鍵字,即可利用本工具進(jìn)行數(shù)據(jù)抓取,并將抓取的數(shù)據(jù)永久性保留至本地文件內(nèi)。很好地解決了目前國(guó)內(nèi)社交軟件研究者們研究數(shù)據(jù)匱乏的問題,具有很大的使用價(jià)值。

      參考文獻(xiàn):

      [1] 謝蓉蓉,徐慧,鄭帥位,等.基于網(wǎng)絡(luò)爬蟲的網(wǎng)頁(yè)大數(shù)據(jù)抓取方法仿真 [J].計(jì)算機(jī)仿真,2021,38(6):439-443.

      [2] 李俊華.基于Python的網(wǎng)絡(luò)爬蟲研究 [J].現(xiàn)代信息科技,2019,3(20):26-27+30.

      [3] 王鋒,王偉,張璟,等.基于Linux的網(wǎng)絡(luò)爬蟲系統(tǒng) [J].計(jì)算機(jī)工程,2010,36(1):280-282.

      [4] SU F,LIN Z W,MA Y. Modeling and Analysis of Internet Worm Propagation [J].The Journal of China Universities of Posts and Telecommunications,2010,17(4):63-68.

      [5] 楊宇,孫亞琴,閆志剛.網(wǎng)絡(luò)爬蟲的專題機(jī)構(gòu)數(shù)據(jù)空間信息采集方法 [J].測(cè)繪科學(xué),2019,44(7):122-127+140.

      [6] 曾健榮,張仰森,鄭佳,等.面向多數(shù)據(jù)源的網(wǎng)絡(luò)爬蟲實(shí)現(xiàn)技術(shù)及應(yīng)用 [J].計(jì)算機(jī)科學(xué),2019,46(5):304-309.

      [7] 張寧蒙.基于Python的網(wǎng)絡(luò)爬蟲技術(shù)探析 [J].移動(dòng)信息,2020(2):84-85.

      [8] 汪巋,費(fèi)晨杰,劉柏嵩.融合LDA的卷積神經(jīng)網(wǎng)絡(luò)主題爬蟲研究 [J].計(jì)算機(jī)工程與應(yīng)用,2019,55(11):123-128+178.

      [9] 龍香妤.基于網(wǎng)絡(luò)爬蟲技術(shù)的數(shù)據(jù)抓取程序的設(shè)計(jì) [J].技術(shù)與市場(chǎng),2021,28(10):41-43.

      [10] 張勝敏,王愛菊.基于Python的分布式多主題網(wǎng)絡(luò)爬蟲的研究與設(shè)計(jì) [J].開封大學(xué)學(xué)報(bào),2021,35(1):93-96.

      作者簡(jiǎn)介:鄧曉璐(1994.01—),女,漢族,江蘇徐州人,助教,碩士研究生,研究方向:推薦系統(tǒng);姚松(1997.11—),男,漢族,廣東珠海人,助理研究員,碩士研究生,研究方向:數(shù)據(jù)挖掘。

      收稿日期:2022-09-14

      基金項(xiàng)目:廣東省教育廳科研項(xiàng)目-青年創(chuàng)新人才類項(xiàng)目(2020KQNCX157)

      猜你喜歡
      裙角爬蟲使用者
      “法定許可”情況下使用者是否需要付費(fèi)
      利用網(wǎng)絡(luò)爬蟲技術(shù)驗(yàn)證房地產(chǎn)灰犀牛之說(shuō)
      基于Python的網(wǎng)絡(luò)爬蟲和反爬蟲技術(shù)研究
      新型拼插休閑椅,讓人與人的距離更近
      好日子(2018年5期)2018-05-30 16:24:04
      利用爬蟲技術(shù)的Geo-Gnutel la VANET流量采集
      THE NEW SPIRIT
      大數(shù)據(jù)環(huán)境下基于python的網(wǎng)絡(luò)爬蟲技術(shù)
      電子制作(2017年9期)2017-04-17 03:00:46
      抓拍神器
      點(diǎn)滴幸福
      故事林(2016年20期)2016-10-18 23:41:41
      上場(chǎng)之前
      延长县| 抚宁县| 屏山县| 武川县| 罗山县| 进贤县| 叙永县| 黔南| 郯城县| 嘉义市| 曲周县| 织金县| 海兴县| 娄底市| 新源县| 临夏市| 景泰县| 东阳市| 竹溪县| 新干县| 湖北省| 莱州市| 巴东县| 枣庄市| 黑河市| 泗洪县| 永城市| 洪江市| 泰顺县| 台州市| 黎城县| 都江堰市| 班戈县| 镇巴县| 武清区| 维西| 永善县| 仪陇县| 松滋市| 惠东县| 胶南市|