亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于微博平臺(tái)的用戶評(píng)論數(shù)據(jù)采集

        2021-09-16 19:28:44黃紅桃江盈鋒
        科技創(chuàng)新導(dǎo)報(bào) 2021年14期
        關(guān)鍵詞:網(wǎng)絡(luò)爬蟲微博數(shù)據(jù)挖掘

        黃紅桃 江盈鋒

        摘? 要:微博的熱點(diǎn)事件會(huì)產(chǎn)生大量評(píng)論數(shù)據(jù),這些數(shù)據(jù)是進(jìn)行輿情分析和網(wǎng)絡(luò)水軍識(shí)別等數(shù)據(jù)挖掘的基礎(chǔ)。論文分析對(duì)比常用的網(wǎng)絡(luò)爬蟲技術(shù)和框架,分別使用Selenium框架和Json數(shù)據(jù)接口兩種方法,采集新浪微博熱點(diǎn)事件下的用戶評(píng)論數(shù)據(jù)。一般網(wǎng)絡(luò)爬蟲技術(shù)多使用廣度搜索,這里采用深度搜索,能夠更精確地獲得某個(gè)熱點(diǎn)事件下的用戶評(píng)論數(shù)據(jù)。

        關(guān)鍵詞:數(shù)據(jù)挖掘? 微博? 用戶評(píng)論? 網(wǎng)絡(luò)爬蟲? Selenium? Json

        中圖分類號(hào):TP393.09;TP274.2? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1674-098X(2021)05(b)-0132-05

        Data Collection of User Comments Based on MicroBlog Platform

        HUANG Hongtao? JIANG Yingfeng

        (School of Information, Guangdong University of Foreign Studies, Guangzhou, Guangdong Province, 510006 China)

        Abstract: Hot events on MicroBlog will generate a large amount of comment data, which is the basis for data mining such as public opinion analysis and online water army identification. The paper analyzes and compares commonly used web crawler technologies and frameworks, using Selenium framework and Json data interface respectively to collect user comment data under hot events on Sina MicroBlog. Generally, web crawling technology uses breadth search, and deep search is adopted here to obtain user comment data under a hot event more accurately.

        Key Words: Data mining; MicroBlog; User comments; Web crawler; Selenium; Json

        根據(jù)2021年2月發(fā)布的第47次《中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告》,截至2020年12月,我國(guó)網(wǎng)民規(guī)模達(dá)9.89億,較2020年3月增長(zhǎng)8540萬,互聯(lián)網(wǎng)普及率達(dá)70.4%,較2020年3月提升5.9個(gè)百分點(diǎn)。截至2020年12月,我國(guó)手機(jī)網(wǎng)民規(guī)模達(dá)9.86億,較2020年3月增長(zhǎng)8885萬,網(wǎng)民使用手機(jī)上網(wǎng)的比例達(dá)99.7%,較2020年3月提升0.4個(gè)百分點(diǎn)。數(shù)據(jù)表明我國(guó)的網(wǎng)民基數(shù)很大,并且網(wǎng)民使用手機(jī)上網(wǎng)的比例非常高。這就使得網(wǎng)民進(jìn)入網(wǎng)絡(luò)的社區(qū)交流平臺(tái)(如微博、知乎)進(jìn)行交流的門檻變低,機(jī)會(huì)變多。很多的網(wǎng)民包括不少網(wǎng)絡(luò)水軍在熱點(diǎn)事件中參與了評(píng)論,使得這些事件產(chǎn)生大量數(shù)據(jù)。

        新浪微博是國(guó)內(nèi)的用戶量極大、活躍度也很高的網(wǎng)絡(luò)社交平臺(tái)。一次熱點(diǎn)事件常常會(huì)有數(shù)以萬計(jì)、十萬計(jì)甚至百萬以上的評(píng)論數(shù)據(jù)。這些數(shù)據(jù)是進(jìn)行輿情分析,網(wǎng)絡(luò)水軍識(shí)別等數(shù)據(jù)挖掘的基礎(chǔ)。

        論文研究相關(guān)的網(wǎng)絡(luò)爬蟲技術(shù),并以此來對(duì)用戶評(píng)論數(shù)據(jù)進(jìn)行批量、自動(dòng)化地采集。

        1? 相關(guān)技術(shù)

        1.1 爬蟲技術(shù)的類別

        爬蟲技術(shù)具有如下的一些分類。

        1.1.1 通用網(wǎng)絡(luò)爬蟲

        通用網(wǎng)絡(luò)爬蟲又稱全網(wǎng)爬蟲(Scalable Web Crawler)[1],爬行對(duì)象從一些種子URL擴(kuò)充到整個(gè) Web,主要為門戶站點(diǎn)搜索引擎和大型Web服務(wù)提供商采集數(shù)據(jù)。由通用網(wǎng)絡(luò)爬蟲的結(jié)構(gòu)大致可以分為頁(yè)面爬行模塊、頁(yè)面分析模塊、鏈接過濾模塊、頁(yè)面數(shù)據(jù)庫(kù)、URL隊(duì)列初始URL集合幾個(gè)部分。通用式爬蟲多用于廣度搜索優(yōu)先策略。

        1.1.2 聚焦網(wǎng)絡(luò)爬蟲

        聚焦網(wǎng)絡(luò)爬蟲(Focused Crawler),又稱主題網(wǎng)絡(luò)爬蟲(Topical Crawler)[2],是指選擇性地爬行那些與預(yù)先定義好的主題相關(guān)頁(yè)面的網(wǎng)絡(luò)爬蟲。和通用網(wǎng)絡(luò)爬蟲相比,聚焦爬蟲只需要爬行與主題相關(guān)的頁(yè)面,極大地節(jié)省了硬件和網(wǎng)絡(luò)資源,保存的頁(yè)面也由于數(shù)量少而更新快,還可以很好地滿足一些特定人群對(duì)特定領(lǐng)域信息的需求。聚焦網(wǎng)絡(luò)爬蟲和通用網(wǎng)絡(luò)爬蟲相比,增加了鏈接評(píng)價(jià)模塊及內(nèi)容評(píng)價(jià)模塊。聚焦爬蟲爬行策略實(shí)現(xiàn)的關(guān)鍵是評(píng)價(jià)頁(yè)面內(nèi)容和鏈接的重要性,不同的方法計(jì)算出的重要性不同,由此導(dǎo)致鏈接的訪問順序也不同。

        1.1.3 增量式爬蟲

        增量式網(wǎng)絡(luò)爬蟲指的是對(duì)已經(jīng)爬取過的網(wǎng)頁(yè)不再進(jìn)行爬取,只爬取新產(chǎn)生的網(wǎng)頁(yè),即增量式更新。與其他類型的網(wǎng)絡(luò)爬蟲相比,只關(guān)注新增的數(shù)據(jù),網(wǎng)頁(yè)的下載量大大減少,降低了爬蟲的存儲(chǔ)空間與網(wǎng)絡(luò)帶寬的消耗,但是增加量抓取算法的復(fù)雜度和實(shí)現(xiàn)的難度[3]。

        1.1.4 Deep Web爬蟲

        從網(wǎng)頁(yè)在網(wǎng)站上呈現(xiàn)的不同的位置結(jié)構(gòu)的角度來分析,可簡(jiǎn)單將網(wǎng)頁(yè)分為淺層態(tài)網(wǎng)頁(yè)與深層態(tài)網(wǎng)頁(yè)。深層態(tài)網(wǎng)頁(yè)是指那些不能被通用搜索引擎所搜錄的存儲(chǔ)在web數(shù)據(jù)庫(kù)中的態(tài)網(wǎng)頁(yè),其通常需要一定條件才能獲?。ㄈ绲卿洠?。相對(duì)深層態(tài)網(wǎng)頁(yè)而言,淺層態(tài)網(wǎng)頁(yè)是指web上被搜索引擎搜錄的淺層態(tài)網(wǎng)頁(yè)。Deep Web往往具有較強(qiáng)的主題性,各Deep Web主題領(lǐng)域中蘊(yùn)含的數(shù)信息專業(yè)性更強(qiáng),內(nèi)容更加豐富[4]。

        1.2 常見的爬蟲框架

        1.2.1 Selenium

        Selenium是一個(gè)可操縱瀏覽器實(shí)行自動(dòng)化測(cè)試的框架。可以通過簡(jiǎn)單的指令控制瀏覽器自動(dòng)化運(yùn)行,如同真實(shí)用戶在操作一般,比如輸入驗(yàn)證碼。Selenium是自動(dòng)化測(cè)試工具,支持各種瀏覽器,包括 Chrome、Safari、Firefox等主流界面式瀏覽器。因此可用來爬取任何網(wǎng)頁(yè)上看到的任何數(shù)據(jù)信息,且?guī)缀蹩梢员荛_絕大部分反爬蟲監(jiān)控[5]。

        1.2.2 Json 接口

        Json(JavaScript Object Notation,JS對(duì)象標(biāo)記)是一種輕量級(jí)的數(shù)據(jù)交換格式。它使用不同于編程語(yǔ)言的特殊的文本格式來進(jìn)行保存數(shù)據(jù)和傳遞數(shù)據(jù)的操作。簡(jiǎn)潔明了、清晰易懂的層次結(jié)構(gòu)使得Json成為理想的數(shù)據(jù)交換語(yǔ)言。更容易人們讀取和編寫、機(jī)器解析和生成,并有效地提升網(wǎng)絡(luò)傳輸效率。Json文本格式具有兼容性非常高、有相似于C語(yǔ)言體系的習(xí)性行為、獨(dú)立于其他編程語(yǔ)言等特點(diǎn)。這些特性使Json成為理想的數(shù)據(jù)交換語(yǔ)言[6],并用于提供json數(shù)據(jù)接口的網(wǎng)頁(yè)進(jìn)行數(shù)據(jù)采集。

        1.2.3 Scrapy

        Scrapy是一個(gè)通過Python實(shí)現(xiàn)的爬蟲框架,架構(gòu)清晰,模塊之間的耦合程度相對(duì)較低,而且可擴(kuò)展性也比較強(qiáng),能夠靈活完成各種需求,具有使用簡(jiǎn)單、代碼量小、可維護(hù)性好等特點(diǎn)[7]。Scrapy框架不僅能夠通過抓取網(wǎng)頁(yè)來獲取數(shù)據(jù),還可以通過訪問API接口獲取其他對(duì)應(yīng)的數(shù)據(jù),實(shí)現(xiàn)對(duì)web資源多層次、快速的抓取,被應(yīng)用于各類網(wǎng)站的抓取工作,提取其中有價(jià)值的結(jié)構(gòu)數(shù)據(jù)[8]。

        2? 數(shù)據(jù)采集

        本次數(shù)據(jù)采集基于網(wǎng)絡(luò)社交平臺(tái)——新浪微博,采集的具體評(píng)論數(shù)據(jù)是https://weibo.com/1792951112/K3S5HcgZi?filter=hot&root_comment_id=0&type=comment#_rnd1619007657759 博文下的用戶評(píng)論。通過該博文的評(píng)論數(shù)目可以看出該博文下的評(píng)論數(shù)據(jù)非常多,已經(jīng)達(dá)到了百萬級(jí)別的評(píng)論數(shù)據(jù)。接下來會(huì)采用爬蟲將其數(shù)據(jù)捕獲下來,并做一些分析。

        根據(jù)采集的數(shù)據(jù)特性,以下選用增量式爬蟲和Deep Web爬蟲技術(shù)、selenium框架和json數(shù)據(jù)接口,分別對(duì)該微博評(píng)論數(shù)據(jù)進(jìn)行采集。

        2.1 使用Selenium框架采集數(shù)據(jù)

        Selenium爬取評(píng)論的基本步驟如圖1所示。

        首先要獲取其網(wǎng)頁(yè)源代碼(在網(wǎng)站上按F12查看),然后根據(jù)其源碼構(gòu)造dom樹如圖2所示。

        接下來就可以運(yùn)用XPath解析dom樹,并根據(jù)相關(guān)的結(jié)點(diǎn)進(jìn)行數(shù)據(jù)爬取,部分代碼如下所示。

        user_data = requests.get(i)

        dom_url = etree.HTML(user_data.text,etree.HTMLParser(encoding='utf-8'))

        follow = dom_url.xpath('//div[@class="WB_innerwrap"]//strong[@class="W_f18"][1]/text()')

        fan = dom_url.xpath('//div[@class="WB_innerwrap"]//strong[@class="W_f18"][2]/text()')

        boke = dom_url.xpath('//div[@class="WB_innerwrap"]//strong[@class="W_f18"][3]/text()')

        數(shù)據(jù)爬取完成之后可以選擇保存在xml、csv、txt等文本文件,這里選擇保存在csv文件中。

        2.2 采用Json數(shù)據(jù)接口采集數(shù)據(jù)

        與Selenium不同,Json數(shù)據(jù)接口可以相對(duì)直接獲取數(shù)據(jù),因?yàn)槠鋽?shù)據(jù)的組成結(jié)構(gòu)是Json的格式,不過需要找到數(shù)據(jù)的接口。

        因?yàn)槲⒉┑木W(wǎng)頁(yè)版是不提供數(shù)據(jù)接口且反爬機(jī)制較先進(jìn),所以這里選用手機(jī)端的微博,手機(jī)端的微博的用戶評(píng)論是瀑布流式刷新的并且提供了Json的數(shù)據(jù)接口,例如其中一個(gè)接口:https://m.weibo.cn/comments/hotflow?id=4609229132925240&mid=4609229132925240&max_id_type=0, 其結(jié)構(gòu)如下所示。

        {ok: 1, data: {data: [,…], total_number: "100萬+",…}}

        data: {data: [,…], total_number: "100萬+",…}

        data: [,…]

        0: {created_at: "Sat Feb 27 15:09:20 +0800 2021", id: "4609230964787737", rootid: "4609230964787737",…}

        1: {created_at: "Sat Feb 27 15:04:59 +0800 2021", id: "4609229871121970", rootid: "4609229871121970",…}

        …..

        18: {created_at: "Sat Feb 27 15:05:08 +0800 2021", id: "4609229908872568", rootid: "4609229908872568",…}

        max: 50000

        max_id: 45846235480040570

        max_id_type: 0

        status: {comment_manage_info: {comment_permission_type: -1, approval_comment_type: 0}}

        total_number: "100萬+"

        ok: 1

        在此結(jié)構(gòu)下獲取其用戶評(píng)論較為直接,不過一個(gè)Json數(shù)據(jù)接口通常只能提供10×19條用戶評(píng)論,所以需要重新獲取下一個(gè)接口。由于手機(jī)端的微博是瀑布流式刷新用戶評(píng)論的,所以可以直接控制頁(yè)面往下拉刷新就可獲取下一個(gè)Json數(shù)據(jù)接口。觀察其數(shù)據(jù)接口鏈接可得知鏈接之中只有max_id和max_id_type會(huì)發(fā)生變化,因此通過多個(gè)Json數(shù)據(jù)鏈接可得出規(guī)律,下一個(gè)鏈接的max_id是上一個(gè)鏈接的Json字典里的max_id(json結(jié)構(gòu)的倒數(shù)第六行),而max_id_type是在0和1兩個(gè)值之間取值。這個(gè)先用0判斷一下Json返回值的ok是否為1就可以判斷,若是max_id_type就取0,否則取1,部分代碼實(shí)現(xiàn)如下所示。

        while (i < count):

        while_starttime = datetime.datetime.now()

        try:

        if i == 0:

        r = requests.get(one, headers=headers)

        else:

        b = '&max_id_type=0'

        urlll = a + str(id) + b

        r = requests.get(urlll, headers=headers)

        flag = r.json()

        flag1 = r.json()['ok']

        if flag1 == 0:

        b = '&max_id_type=1'

        urlll = a + str(id) + b

        r = requests.get(urlll, headers=headers)

        js = r.json()

        users = js['data']['data']

        接下來就是對(duì)Json數(shù)據(jù)進(jìn)行分解獲取,得到的數(shù)據(jù)同樣可以保存為xml表格、csv文件、txt文本文件等。

        2.3 采集結(jié)果

        兩種方法爬取的結(jié)果,都包含用戶id(用戶的唯一標(biāo)識(shí))、用戶名、評(píng)論時(shí)間、評(píng)論內(nèi)容、評(píng)論獲贊數(shù)等,本次爬取共獲取了6000多條數(shù)據(jù),可以為接下來的用戶評(píng)論的數(shù)據(jù)挖掘提供較大的數(shù)據(jù)量,結(jié)果如圖3所示。

        3? 結(jié)語(yǔ)

        本文使用兩種方法,均采用深度優(yōu)先的搜索,獲取微博用戶評(píng)論數(shù)據(jù)。Selenium框架是先對(duì)網(wǎng)頁(yè)源代碼進(jìn)行解析,生成dom樹,再通過dom樹來獲取其中的用戶評(píng)論數(shù)據(jù)。Json數(shù)據(jù)接口則是通過對(duì)Json數(shù)據(jù)結(jié)構(gòu)的解析,直接獲取微博用戶的評(píng)論數(shù)據(jù)。實(shí)驗(yàn)中,使用兩種方法對(duì)微博某一熱點(diǎn)事件下用戶評(píng)論數(shù)據(jù)的采集,都取得不錯(cuò)的結(jié)果。

        兩種數(shù)據(jù)采集方法各有優(yōu)缺點(diǎn)。Selenium可以模擬真實(shí)人的行為進(jìn)行抓取數(shù)據(jù),基本不受網(wǎng)頁(yè)的限制,但前期過程會(huì)較為繁瑣且爬取的效率不太高。Json數(shù)據(jù)接口直接簡(jiǎn)單,但獲取數(shù)據(jù)需要詳細(xì)的尋找出隱藏的接口位置,有時(shí)還需要尋找下一個(gè)接口并總結(jié)其鏈接規(guī)律,還有就是部分網(wǎng)站不提供數(shù)據(jù)接口。在實(shí)際操作可以根據(jù)具體需求,結(jié)合這兩種技術(shù)的優(yōu)缺點(diǎn)來選取其中一種方法。

        參考文獻(xiàn)

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

        [2] Guo S, Bian W, Liu Y, et al. Research on the application of SVM-based focused crawler for space intelligence collection[J]. Electronic Design Engineering,2016,24(17):28-34

        [3] 葉婷.基于關(guān)鍵詞的微博爬蟲系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].杭州:浙江工 業(yè)大學(xué),2016.

        [4] 楊曉夫.汽車票務(wù)DeepWeb數(shù)據(jù)采集關(guān)鍵技術(shù)研究[D].重慶:重慶交通大學(xué),2016.

        [5] 呂博慶.基于爬蟲與數(shù)據(jù)挖掘的電商頁(yè)面信息分析[D].蘭州:蘭州大學(xué),2018.

        [6] 陳哲.基于微博熱點(diǎn)事件的可視化系統(tǒng)的開發(fā)與實(shí)現(xiàn)[D].北京:首都經(jīng)濟(jì)貿(mào)易大學(xué),2018.

        [7] 孫瑜.基于Scrapy框架的網(wǎng)絡(luò)爬蟲系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京交通大學(xué),2019.

        [8] 崔新宇.基于情感分析的商品評(píng)價(jià)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].邯鄲:河北工程大學(xué),2020.

        猜你喜歡
        網(wǎng)絡(luò)爬蟲微博數(shù)據(jù)挖掘
        青少年數(shù)字素養(yǎng)的社會(huì)與文化內(nèi)涵及其教育啟示
        探討人工智能與數(shù)據(jù)挖掘發(fā)展趨勢(shì)
        基于并行計(jì)算的大數(shù)據(jù)挖掘在電網(wǎng)中的應(yīng)用
        電力與能源(2017年6期)2017-05-14 06:19:37
        煉鐵廠鐵量網(wǎng)頁(yè)數(shù)據(jù)獲取系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
        事實(shí)與流言的博弈
        人間(2016年26期)2016-11-03 18:19:04
        基于社會(huì)網(wǎng)絡(luò)分析的權(quán)威網(wǎng)頁(yè)挖掘研究
        主題搜索引擎中網(wǎng)絡(luò)爬蟲的實(shí)現(xiàn)研究
        淺析如何應(yīng)對(duì)網(wǎng)絡(luò)爬蟲流量
        一種基于Hadoop的大數(shù)據(jù)挖掘云服務(wù)及應(yīng)用
        基于GPGPU的離散數(shù)據(jù)挖掘研究
        国产一区二区三区在线电影| 国产一区二区三区免费在线播放| 亚洲精品中字在线观看| 亚洲色欲久久久综合网东京热| 欧洲人妻丰满av无码久久不卡| 亚洲精品亚洲人成在线下载| 国产色婷亚洲99精品av网站| 亚洲av高清一区二区三| 国产精品亚洲一区二区在线观看| 日韩在线观看你懂的| 东京道一本热码加勒比小泽| 日韩精品第一区二区三区| 特级a欧美做爰片第一次| 黄视频国产| 午夜亚洲精品视频网站| 国产av自拍视频在线观看| 国产高清在线精品一区二区三区| 亚洲国产精品国自产电影| 免费高清日本一区二区| 日韩午夜理论免费tv影院| 亚洲一线二线三线写真| 久久免费国产精品一区二区| 免费国产不卡在线观看| 激情综合色五月丁香六月欧美 | 国产自产21区激情综合一区| 午夜国产精品视频在线观看| 成人欧美一区二区三区| 亚洲a∨天堂男人无码| 麻豆av在线免费观看精品| 色窝窝无码一区二区三区| 免费观看又污又黄的网站| 国产呦系列视频网站在线观看| 国产剧情av麻豆香蕉精品| 中文字幕人妻无码一夲道| 亚洲永久精品ww47永久入口| 白白色发布视频在线播放| 又大又长粗又爽又黄少妇视频| 天堂网www在线资源| 蜜臀av人妻一区二区三区| 亚洲性无码av中文字幕| 久久发布国产伦子伦精品|