• 
    

    
    

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

      基于Python的新浪微博爬蟲程序設(shè)計(jì)與實(shí)現(xiàn)

      2022-07-17 12:16:51孫握瑜
      科技資訊 2022年12期
      關(guān)鍵詞:爬蟲新浪頁(yè)面

      孫握瑜

      摘要: 在互聯(lián)網(wǎng)時(shí)代,各類新媒體平臺(tái)出現(xiàn)使得信息數(shù)據(jù)得到廣泛傳播。為加強(qiáng)對(duì)新浪微博內(nèi)容的監(jiān)管和分析,應(yīng)對(duì)輿情分析的需求,該文主要研究采用Python語言設(shè)計(jì)新浪微博爬蟲程序,在對(duì)網(wǎng)絡(luò)爬蟲基本概念和原理研究的基礎(chǔ)上,設(shè)計(jì)了具有配置、爬取、存儲(chǔ)、分析這4個(gè)功能模塊的應(yīng)用程序,為媒體內(nèi)容監(jiān)管和數(shù)據(jù)分析提供了技術(shù)支持。

      關(guān)鍵詞: Python? 新浪微博網(wǎng)絡(luò)爬蟲輿情分析

      中圖分類號(hào):TP393.092;TP391.1? ?文獻(xiàn)標(biāo)識(shí)碼:A? ?文章編號(hào):1672-3791(2022)06(b)-0000-00

      Design and Lmplementation of Sina Weibo Crawler Program Based on Python

      SUN Woyu

      (School of Information and Artificial Intelligence, Anhui Business College, Anhui Province,241000? China)

      Abstract: In the era of information explosion, various new media platforms appear to make the information and data widely disseminated. In order to strengthen the management of sina Weibo information and meet the needs of public opinion analysis, this paper focuses on the design of sina Weibo crawler program in Python language. Based on the research on the basic concept and principle of web crawler, an application program with four functional modules of configuration, crawling, storage and analysis is designed, which provides technical support for media content management and data analysis.

      Key Words: Python; Sina Weibo; Web crawler; Public opinion analysis

      隨著互聯(lián)網(wǎng)技術(shù)的快速革新,新媒體平臺(tái)層見疊出,廣大網(wǎng)民可以通過互聯(lián)網(wǎng)平臺(tái)發(fā)表觀點(diǎn)和記錄日常生活,各類消息事件也得到了廣泛傳播,為我們帶來了信息爆炸的時(shí)代,拓寬了廣大人民群眾的視野,同時(shí)也帶來了一系列輿情風(fēng)險(xiǎn)。對(duì)社交網(wǎng)絡(luò)輿情的有效監(jiān)管,是在新形勢(shì)下應(yīng)對(duì)國(guó)家安全環(huán)境新變化、新發(fā)展的必然要求[1]。新浪微博自 2009 年正式投入使用以來,活躍用戶就一直保持著爆發(fā)式增長(zhǎng)[2],2021年微博月活躍用戶達(dá)到5.3億,日活躍用戶達(dá)到2.3億,用戶年輕化趨勢(shì)明顯。盡管抖音、快手等短視頻類平臺(tái)不斷崛起,但是由于文字內(nèi)容更新速度的優(yōu)勢(shì),新浪微博仍然是公共事件爆發(fā)的原點(diǎn)和信息傳播平臺(tái)。

      在日常工作中,需要管理好本單位或組織的新浪微博資訊,像高校等組織管理賬號(hào)較多,人工監(jiān)管顯然是跟不上信息更新速度的,這就需要利用軟件技術(shù)自動(dòng)抓取和分析新浪微博信息。盡管一些第三方軟件提供了新浪微博部分?jǐn)?shù)據(jù)訪問接口,使管理人員內(nèi)容較為快捷地抓取一些信息,進(jìn)行輿情分析。但是通過訪問接口抓取數(shù)據(jù)容易出現(xiàn)被限制情況,從而導(dǎo)致接口服務(wù)被禁用,而且數(shù)據(jù)還可能出現(xiàn)不精準(zhǔn)的情況。該文主要參數(shù)使用Python技術(shù)設(shè)計(jì)開發(fā)新浪微博爬蟲程序,用于分析獲取指定微博用戶的輿情信息,為做好輿情分析提供基礎(chǔ)的數(shù)據(jù)來源?;赑ython開發(fā)的網(wǎng)絡(luò)爬蟲云平臺(tái)具有開發(fā)周期短、應(yīng)用便捷、技術(shù)維護(hù)方便等優(yōu)點(diǎn)[3]。

      1相關(guān)概念

      1.1 Python

      近年來,大數(shù)據(jù)、AI和物聯(lián)網(wǎng)等技術(shù)不斷興起和革新,Python已經(jīng)成為當(dāng)前流行的編程語言之一。Python從本質(zhì)上來說屬于一種開源編程語言,其具有功能強(qiáng)大、語法簡(jiǎn)便、適用性良好等優(yōu)勢(shì)特性[4]。它是一種跨平臺(tái)的面向?qū)ο笥?jì)算機(jī)程序設(shè)計(jì)語言,可以很方便地調(diào)用別的語言(如C++、Java)編寫的功能模塊,將它們有機(jī)結(jié)合在一起形成更高效的新程序。另外,Python有著豐富、強(qiáng)大的庫(kù)支持,比如:基于Python 的網(wǎng)絡(luò)爬蟲庫(kù)就非常完備,如表1所示。

      1.2 網(wǎng)絡(luò)爬蟲概念和原理

      爬蟲就是通過編寫程序模擬瀏覽器上網(wǎng),按要求在網(wǎng)上抓取數(shù)據(jù)的程序[5],可以按照設(shè)定的規(guī)則自動(dòng)獲取互聯(lián)網(wǎng)上的信息。網(wǎng)絡(luò)爬蟲根據(jù)不同的系統(tǒng)結(jié)構(gòu)和運(yùn)作原理分為四種類型,該文采集新浪微博的數(shù)據(jù)信息主要使用通用網(wǎng)絡(luò)爬蟲。除此之外還有深層、聚焦和增量式等三種類型網(wǎng)絡(luò)爬蟲,下面主要對(duì)通用網(wǎng)絡(luò)爬蟲的原理進(jìn)行詳細(xì)介紹。

      通用網(wǎng)絡(luò)爬蟲可以將互聯(lián)網(wǎng)上的Web頁(yè)批量爬取并下載的本地進(jìn)行存儲(chǔ),其實(shí)現(xiàn)過程如圖1所示。

      首先根據(jù)需要,由用戶指定初始URL。然后根據(jù)URL保存對(duì)應(yīng)的網(wǎng)頁(yè)內(nèi)容到數(shù)據(jù)庫(kù)中,對(duì)其頁(yè)面中的內(nèi)容進(jìn)行解析,獲取頁(yè)面中一系列URL地址,把這些URL地址加載到URL隊(duì)列中。接下來對(duì)新獲取的URL地址不斷進(jìn)行重復(fù)解析和存儲(chǔ),直到滿足設(shè)置的停止條件,如沒有設(shè)置停止條件,爬蟲會(huì)不斷工作下去。另外在爬取網(wǎng)頁(yè)的過程中,會(huì)不斷將爬取過的網(wǎng)頁(yè)URL存儲(chǔ)到列表中,作為參照避免重復(fù)爬取。

      2新浪微博爬蟲程序設(shè)計(jì)

      2.1 爬蟲設(shè)計(jì)思路

      首先配置一個(gè)或多個(gè)需要獲取的微博用戶,其中包括微博UID、微博名稱等,并配置其他相關(guān)屬性,用較為簡(jiǎn)便的方法完成數(shù)據(jù)采集。由于新浪微博Web版頁(yè)面請(qǐng)求被JS加密過,因此抓取移動(dòng)端頁(yè)面較為簡(jiǎn)便一些。首先,在電腦上訪問移動(dòng)端頁(yè)面,并同時(shí)保持用戶登錄狀態(tài),才能訪問指定用戶的頁(yè)面。通過觀察發(fā)現(xiàn)頁(yè)面URL的規(guī)則是“https://m.weibo.cn/u/用戶編號(hào)”,通過提交該請(qǐng)求會(huì)返回格式如getIndex?type=uid&value=用戶編號(hào)&containerid=107603+用戶編號(hào)的JSON信息,如圖2所示。JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,易于閱讀和編寫,也易于機(jī)器解析和生成[6]。JSON數(shù)據(jù)主要返回微博內(nèi)容、發(fā)布時(shí)間、瀏覽數(shù)、點(diǎn)贊數(shù)、分頁(yè)數(shù)等內(nèi)容,只要使用Python對(duì)JSON信息進(jìn)行解析分析,獲取其中需要的內(nèi)容,然后再根據(jù)分頁(yè)數(shù)逐個(gè)獲取每一頁(yè)的微博信息,最終完成抓取任務(wù)。

      2.2 功能實(shí)現(xiàn)

      按照網(wǎng)絡(luò)爬蟲的原理和爬蟲程序設(shè)計(jì)思路,程序共包括四大模塊。

      2.2.1配置模塊

      主要配置用戶UID、微博名稱、信息開始時(shí)間、存儲(chǔ)數(shù)據(jù)格式等信息,并把配置信息加載到對(duì)象中,可以是同時(shí)配置多個(gè)指定用戶微博。

      2.2.2爬取模塊

      通過配置對(duì)象初始化爬蟲信息,然后獲取微博頁(yè)數(shù),然后根據(jù)頁(yè)碼數(shù)進(jìn)行循環(huán)抓取每一頁(yè)的內(nèi)容。在每頁(yè)信息抓取過程中,需要將JSON信息中的data節(jié)點(diǎn)中的cards節(jié)點(diǎn)內(nèi)容加載到對(duì)象中,如果card_type=9,進(jìn)一步讀取mblog節(jié)點(diǎn)中的內(nèi)容,具體對(duì)應(yīng)關(guān)系表2所示。在抓取的過程中為避免爬蟲速度過快被系統(tǒng)限制,通過加入隨機(jī)等待避免被限制,模擬人工操作的特征,每訪問一些頁(yè)面適當(dāng)?shù)碾S機(jī)等待一段時(shí)間。在系統(tǒng)設(shè)計(jì)中,我們采用每爬取1~5頁(yè)隨機(jī)等待6~10 s,其中這個(gè)Sleep時(shí)間可以根據(jù)實(shí)際情況進(jìn)行調(diào)整。通過實(shí)踐證明該方法可以基本上規(guī)避被系統(tǒng)限制的情況。

      2.2.3存儲(chǔ)模塊

      通過爬蟲程序的不斷抓取,在指定范圍內(nèi)容的每頁(yè)微博信息均完成了采集工作,為了后期數(shù)據(jù)分析,需要進(jìn)行存儲(chǔ)。對(duì)于海量數(shù)據(jù)存儲(chǔ)來說,需要用到Mangodb等數(shù)據(jù),該文設(shè)計(jì)的爬蟲程序只針對(duì)于單個(gè)用戶的微博信息,內(nèi)容較少,因此只采用csv格式進(jìn)行數(shù)據(jù)存儲(chǔ),通過Python創(chuàng)建csv文件,每爬取50頁(yè)信息寫入一次文件,存儲(chǔ)完成的文件如圖3所示。在記錄信息的通知還可以下載與微博信息對(duì)應(yīng)的原始圖片。

      2.2.4分析模塊

      輿情分析主要根據(jù)網(wǎng)絡(luò)爬蟲獲取并存儲(chǔ)的網(wǎng)絡(luò)數(shù)據(jù),在該文中使用 Python開發(fā)設(shè)計(jì)爬蟲程序,指定對(duì)“安徽商貿(mào)職業(yè)技術(shù)學(xué)院”的新浪微博數(shù)據(jù)進(jìn)行抓取,然后對(duì)其發(fā)布內(nèi)容、參與話題圈、@用戶情況和@話題圈情況進(jìn)行了可視化分析,如圖4~圖6所示。通過可視化的分析,可以看出安徽商貿(mào)職業(yè)技術(shù)學(xué)院微博主要以發(fā)布?xì)庀?、固定時(shí)間問候?yàn)橹?,另外還發(fā)布詩(shī)集、要聞、通知等。參與話題圈眾多,主要以體育、娛樂、節(jié)氣、政治節(jié)日、重要事件等為主,多為正能量較強(qiáng)的話題。在發(fā)布內(nèi)容時(shí),主要@的用戶有人民日?qǐng)?bào)、央視新聞、新浪視頻、新浪音樂等,和發(fā)布的話題類型也是相符的。另外最后還可以看出@的話題圈也與上述分析的結(jié)果是一致的。

      3 結(jié)語

      經(jīng)過分析研究,采用Python 語言設(shè)計(jì)新浪微博爬蟲程序,在程序設(shè)計(jì)上語法簡(jiǎn)便、功能強(qiáng)大,且具有較高的可行性。程序通過配置、抓取、存儲(chǔ)、分析四大模塊,抓取新浪微博指定用戶的內(nèi)容,并進(jìn)行數(shù)據(jù)分析。實(shí)驗(yàn)結(jié)果表明:該爬蟲性能穩(wěn)定良好,爬取內(nèi)容全面無遺漏,可以對(duì)指定用戶的新浪微博信息進(jìn)行抓取,并且對(duì)數(shù)據(jù)進(jìn)行儲(chǔ)存,可視化分析能夠直觀地了解微博的運(yùn)行狀態(tài),實(shí)用性很強(qiáng)。

      參考文獻(xiàn)

      [1] 張柳. 社交網(wǎng)絡(luò)輿情用戶主題圖譜構(gòu)建及輿情引導(dǎo)策略研究[D].長(zhǎng)春:吉林大學(xué),2021.

      [2] 孟寶燦.Python網(wǎng)絡(luò)爬蟲應(yīng)用探討[J].廣播電視信息,2022,29(3):108-110.

      [3] 畢志杰,李靜.基于Python的新浪微博爬蟲程序設(shè)計(jì)與研究[J].信息與電腦:理論版,2020,32(4):150-152.

      [4] 杜曉旭,賈小云.基于Python的新浪微博爬蟲分析[J].軟件,2019,40(4):182-185.

      [5] 于學(xué)斗,柏曉鈺.基于Python的城市天氣數(shù)據(jù)爬蟲程序分析[J].辦公自動(dòng)化,2022,27(7):10-13,9.

      [6] 黃秀麗,陳志.基于JSON的異構(gòu)Web平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2021,31(3):120-125.

      猜你喜歡
      爬蟲新浪頁(yè)面
      大狗熊在睡覺
      利用網(wǎng)絡(luò)爬蟲技術(shù)驗(yàn)證房地產(chǎn)灰犀牛之說
      刷新生活的頁(yè)面
      猴子雖小
      讀者(2021年20期)2021-09-25 20:30:35
      基于Python的網(wǎng)絡(luò)爬蟲和反爬蟲技術(shù)研究
      利用爬蟲技術(shù)的Geo-Gnutel la VANET流量采集
      大數(shù)據(jù)環(huán)境下基于python的網(wǎng)絡(luò)爬蟲技術(shù)
      電子制作(2017年9期)2017-04-17 03:00:46
      新浪讀書排行榜
      同一Word文檔 縱橫頁(yè)面并存
      淺析ASP.NET頁(yè)面導(dǎo)航技術(shù)
      九寨沟县| 霸州市| 西城区| 淮北市| 虞城县| 德昌县| 揭西县| 康马县| 芷江| 临高县| 姚安县| 千阳县| 南皮县| 乳源| 延川县| 宁陕县| 马关县| 宣威市| 泉州市| 盐城市| 交口县| 澜沧| 江口县| 团风县| 山东省| 泰和县| 门头沟区| 扎囊县| 修武县| 健康| 郧西县| 通化市| 陕西省| 油尖旺区| 麻城市| 土默特左旗| 格尔木市| 拜城县| 阳信县| 洛浦县| 锡林郭勒盟|