基于python今日頭條新聞類網(wǎng)站數(shù)據(jù)分析展示_第1頁
基于python今日頭條新聞類網(wǎng)站數(shù)據(jù)分析展示_第2頁
基于python今日頭條新聞類網(wǎng)站數(shù)據(jù)分析展示_第3頁
基于python今日頭條新聞類網(wǎng)站數(shù)據(jù)分析展示_第4頁
基于python今日頭條新聞類網(wǎng)站數(shù)據(jù)分析展示_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

目錄

1引言............................................................................................................................1

1.1項目背景......................................................................................................1

1.2開發(fā)環(huán)境與工具..........................................................................................2

1.2.1Python簡介..........................................................................................2

1.2.2Selenium簡介......................................................................................2

1.2.3Jupyternotebook簡介......................................................................2

1.2.4Matplotlib簡介..................................................................................3

2需求分析....................................................................................................................3

2.1可行性需求分析..........................................................................................3

2.2采集目標(biāo)功能分析......................................................................................4

2.3關(guān)鍵技術(shù)分析..............................................................................................4

2.3.1網(wǎng)絡(luò)爬蟲技術(shù).......................................................................................4

2.3.2文件存取技術(shù).......................................................................................5

2.3.3可視化技術(shù)...........................................................................................6

3數(shù)據(jù)采集....................................................................................................................6

3.1采集頁面分析..............................................................................................6

3.2字段分析......................................................................................................7

3.3編程實現(xiàn)......................................................................................................8

4數(shù)據(jù)清洗與處理......................................................................................................13

4.1數(shù)據(jù)清洗....................................................................................................13

4.2數(shù)據(jù)儲存....................................................................................................14

4.3編程實現(xiàn)....................................................................................................15

5數(shù)據(jù)統(tǒng)計與分析......................................................................................................16

5.1數(shù)據(jù)準(zhǔn)備....................................................................................................16

5.2數(shù)據(jù)展示....................................................................................................17

5.2.1依據(jù)點贊數(shù)量、評論數(shù)量進行統(tǒng)計.................................................17

5.2.2依據(jù)新聞點贊與新聞賬號做統(tǒng)計.....................................................18

I

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

5.2.3依據(jù)評論數(shù)量和點贊數(shù)量統(tǒng)計新聞賬號受歡迎程度.....................19

5.2.4依據(jù)新聞賬號、評論數(shù)量、點贊數(shù)量進行綜合統(tǒng)計.....................20

5.3綜述............................................................................................................20

6小結(jié)..........................................................................................................................21

參考資料.........................................................................................................................22

II

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

基于Python今日頭條新聞類網(wǎng)站數(shù)據(jù)分析展示

1引言

大數(shù)據(jù)的發(fā)展,使我們的國家已經(jīng)進入了一個數(shù)據(jù)經(jīng)濟的階段。人們現(xiàn)在經(jīng)

常會看到這個詞匯,逐漸就不陌生了,但知道具體含義的人卻是寥寥無幾,那

么大數(shù)據(jù)究竟是什么意思,我們來進行探討。

隨著經(jīng)濟和科技的發(fā)展,互聯(lián)網(wǎng)離我們越來越近,現(xiàn)代智能手機的發(fā)展也

已經(jīng)有了非常高超的技術(shù),使得我們可以通過手機流量的消耗和無線網(wǎng)進行網(wǎng)

絡(luò)上的信息交流。在這種情況下,每個人的手機內(nèi)部都有著數(shù)不清的信息,人

們除了通過手機玩游戲、看視頻、看電影以外,還會進行社交和購物,這種情

況下就潛移默化的將我們的心情、想法帶入到了其中,因此網(wǎng)絡(luò)上的各個平臺

以此為基礎(chǔ)來掌握我們的各種信息,進而為我們推薦更加符合我們個人需求的

視頻、商品、等等。所以大數(shù)據(jù)可以理解為統(tǒng)計數(shù)據(jù)信息的平臺,也可以被理

解為現(xiàn)階段網(wǎng)絡(luò)產(chǎn)物。

1.1項目背景

一個新聞類網(wǎng)站數(shù)據(jù)包含著許許多多個板塊,而每個板塊里面又有著數(shù)不

清的數(shù)據(jù)信息,闡述著各個方面的類型題材。

對于今日頭條新聞類網(wǎng)站而言,我們要想爬取到具有價值的數(shù)據(jù)信息就必

須將每個板塊都得爬取一些數(shù)據(jù),最終將數(shù)據(jù)進行整合處理,才可以形成較為

可靠的結(jié)論,幫助我們可以更加了解人們對哪方面新聞題材的熱衷。

涉及到新聞信息有很多,我們需要對網(wǎng)頁進行解析,然后通過Python爬蟲

的手段批量獲取我們想要的數(shù)據(jù)。

本次的項目就是爬取到新聞文章字段信息,看那些題材的新聞人們更加感

興趣。爬取今日頭條網(wǎng)站新聞數(shù)據(jù),對其進行預(yù)處理,分析,最后可視化。繁雜

的數(shù)據(jù)經(jīng)過清洗加分析后,就可以將結(jié)果呈現(xiàn)在領(lǐng)導(dǎo)面前,公司的領(lǐng)導(dǎo)就可以討

論哪些新聞題材人們更加熱衷,現(xiàn)階段最需要的是發(fā)表那些類型的新聞,最后做

出相對正確的決策。因此我的畢業(yè)設(shè)計包含了數(shù)據(jù)采集、清洗與處理、儲存數(shù)

據(jù)、可視化操作。

1

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

1.2開發(fā)環(huán)境與工具

1.2.1Python簡介

Python由荷蘭數(shù)學(xué)和計算機科學(xué)研究學(xué)會的吉多·范羅蘇姆于20世紀(jì)90

年代設(shè)計,作為一門叫做ABC語言的替代品,自Python語言誕生至今,它已被

逐漸廣泛應(yīng)用于系統(tǒng)管理任務(wù)的處理和Web編程。

Python誕生的初期并沒有引起大多數(shù)人們的關(guān)注,自2004年之后Python

的使用人數(shù)就猛增起來,在大量的項目業(yè)務(wù)上大規(guī)模的開始應(yīng)用Python,也因此

Python就這樣走進了大眾的視野,從而促使Python的發(fā)展更加迅猛。

隨著計算機技術(shù)的快速發(fā)展,移動互聯(lián)網(wǎng)的大肆普及。軟件、大數(shù)據(jù)等信息

技術(shù)興起,這其中的大數(shù)據(jù)技術(shù)涉及到的數(shù)據(jù)采集、清洗處理、數(shù)據(jù)可視化操作

都有Python的身影存在。最后,在編程語言排行榜中,Python的排名已經(jīng)與高

級程序C語言和JAVA語言旗鼓相當(dāng)了已經(jīng),走進了大多數(shù)企業(yè)家們的視野,在

企業(yè)領(lǐng)域被廣泛的應(yīng)用。人們用它開發(fā)一些簡單的腳本做文件的自動化處理或

者開發(fā)一些網(wǎng)站來賺點費用。這也恰好說明了Python就是言語簡單、庫足夠豐

富、并且免費開源、支持跨多平臺且可移植性比較強。

1.2.2Selenium簡介

Selenium是最廣泛使用的開源Web自動化測試腳本,它最初是由杰森·哈

金斯于2004年開發(fā),作為ThoughtWorks的內(nèi)部工具,可以支持跨不同瀏覽器、

平臺和編程語言的自動化,并且可以直接在大多數(shù)Web瀏覽器中運行。通過使

用特定于每種語言的驅(qū)動程序支持各種編程語言,支持的語言包括C#,Java,

Python等等。目前,Selenium驅(qū)動程序最受Python和C#的歡迎,它完全開源,

對商業(yè)用戶也沒有任何限制,擁有成熟的社區(qū)與學(xué)習(xí)文檔,可以模擬人去操控

瀏覽器非常的適用于數(shù)據(jù)的采集。

1.2.3Jupyternotebook簡介

Jupyternotebook是以網(wǎng)頁的形式打開,能夠在網(wǎng)頁中直接編寫代碼和運

行代碼,運行結(jié)果會顯示在代碼塊的下面,它可以支持實時代碼、數(shù)學(xué)方程、

可視化和Markdown,并且它支持的Markdown標(biāo)記語言,在瀏覽器界面編輯代碼

的同時可以很方便的為代碼提供注釋。在Jupyternotebook執(zhí)行代碼的同時對

于注釋性文本并不會執(zhí)行,極大的方便了教學(xué)人員。

Jupyternotebook應(yīng)用比較廣泛,特別適合用來做數(shù)據(jù)的清洗和轉(zhuǎn)換,在統(tǒng)

2

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

計建模、數(shù)值模擬、機器學(xué)習(xí)等應(yīng)用也是十分方便的,對于比較高層次的開發(fā)

人員來說,這個工具也可以用來做深度的機器學(xué)習(xí)。

對于初學(xué)者來說學(xué)習(xí)Jupyternotebook再好不過了,因為它的安裝比較簡

單,只需要安裝Anaconda即可以使用,因為Anaconda自帶了Jupyternotebook。

Python第三方庫簡介

requests:他是一個原生的http庫,比urllib3庫更為容易使用、更為簡

單,還擁有完全自動化keep-alive和http連接池的功能。

etree:它主要提供的是解析網(wǎng)頁,里面最主要的就是xpath路徑表達式,

它可以在xml文檔中進行導(dǎo)航查找信息。

numpy:是Python數(shù)據(jù)分析科學(xué)計算庫,是處理數(shù)組的庫,NumPy庫的數(shù)據(jù)

結(jié)構(gòu)比Python自帶的更加高效。

pandas:里面提供了兩種數(shù)據(jù)結(jié)構(gòu),一直是Series,另一種是Dataframe,

大多數(shù)用的就是Dataframe,可以用來將爬取的數(shù)據(jù)進行保存下存到csv文件中

去。

matplotlib:是一個Python主要的繪圖庫,偏向于二維繪圖包括折線圖、

條形圖、餅圖、散點圖、直方圖、箱線圖等等。

1.2.4Matplotlib簡介

Matplotlib是一個比較重要的Python數(shù)據(jù)可視化繪圖庫,它基于Numpy的

數(shù)組運算功能,繪圖功能非常強大,已經(jīng)成為Python中公認的數(shù)據(jù)可視化工具,

即可以畫靜態(tài)圖片,也可以畫動態(tài)的圖片非常靈活,通過Matplotlib你可以很

輕松地畫一些或簡單或復(fù)雜的圖形,幾行代碼即可生成線圖、直方圖、功率譜、

條形圖、錯誤圖、散點圖等。

2需求分析

2.1可行性需求分析

1、技術(shù)可行性

Python是面向?qū)ο笳Z言中的一門簡單易學(xué)的計算機編程語言,在這次項目

中使用一些第三方庫來實現(xiàn)數(shù)據(jù)采集、數(shù)據(jù)清洗與處理,數(shù)據(jù)可視化操作。在數(shù)

據(jù)采集的過程中遇到一些問題,隨后通過分析元素定位發(fā)現(xiàn)今日頭條網(wǎng)站新聞

信息頁面的數(shù)據(jù)是動態(tài)傳輸?shù)?所以我就通過動態(tài)爬取數(shù)據(jù)的方式進行請求,然

后獲取響應(yīng),就可以得到網(wǎng)頁數(shù)據(jù)的返回值。隨后將爬取出來的原始數(shù)據(jù)暫時

3

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

以csv格式儲存起來,再讀取數(shù)據(jù),將其進行數(shù)據(jù)清洗和預(yù)處理,最后在進行可

視化中再進行調(diào)用。

上面的就為此次項目的可行性,我會將所有的步驟實現(xiàn)到位,保證數(shù)據(jù)的準(zhǔn)

確性。

2、項目可行性

人們的對于新聞文章的興趣愛好隨著時代的前進慢慢的變得不同,討論新

聞從未斷絕過,每一次發(fā)表軍事、科研、財政等領(lǐng)域的話題時,其話題熱度往往

能沖上熱搜榜首。

本次項目通過數(shù)據(jù)采集比較今日頭條的新聞網(wǎng)站內(nèi)的數(shù)據(jù),來分析我國人

民的新聞愛好是那種類型的新聞題材。我們也將從軍事、歷史、國際等各個方

面對其進行深度剖析,分析出有價值的信息,將其可視化操作最后根據(jù)結(jié)果得出

結(jié)論。

2.2采集目標(biāo)功能分析

本次項目的數(shù)據(jù)集的來源是今日頭條網(wǎng)站新聞類數(shù)據(jù),是通過python爬取

今日頭條每個板塊的部分新聞信息。數(shù)據(jù)清洗和處理過后共651條記錄,爬取完

成后盡可能保證自己爬取的數(shù)據(jù)準(zhǔn)確性,確定爬取出來的數(shù)據(jù)無誤并且是屬于

今日頭條首頁每個板塊實時存在的新聞類信息。

分析今日頭條網(wǎng)站的網(wǎng)頁信息,我們需要爬取的新聞板塊有財政、科技、軍

事、國際、歷史、娛樂等等板塊數(shù)據(jù),在對原始數(shù)據(jù)進行清洗和預(yù)處理后我們會

對其數(shù)據(jù)進行多個維度的分析。例如,從新聞文章的點贊數(shù)量對數(shù)據(jù)進行一個排

序,然后取出其前20個新聞賬號,畫成條形圖進行比較分析,看看是什么樣子

的新聞題材更加的受到人們的歡迎并且為其點贊。

2.3關(guān)鍵技術(shù)分析

2.3.1網(wǎng)絡(luò)爬蟲技術(shù)

網(wǎng)絡(luò)爬蟲又稱之為網(wǎng)絡(luò)機器人、網(wǎng)頁蜘蛛,它是按照一定的規(guī)律去爬取網(wǎng)

頁上數(shù)據(jù)的程序或者腳本,只需要編寫一些爬蟲代碼或者一些小腳本用來自動

的瀏覽龐大的網(wǎng)站數(shù)據(jù),并且可以對我們想要的目標(biāo)網(wǎng)頁去進行準(zhǔn)確的數(shù)據(jù)采

集?,F(xiàn)在我們常見的網(wǎng)絡(luò)爬蟲按照原理一般可以分為:通用網(wǎng)絡(luò)爬蟲、聚焦網(wǎng)

絡(luò)爬蟲、增量式網(wǎng)絡(luò)爬蟲、深層網(wǎng)絡(luò)爬蟲等等。

因此,網(wǎng)絡(luò)爬蟲技術(shù)在實際應(yīng)用場景的不同,它所發(fā)揮的作用也是不同的,

4

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

有利于人的、也有不利于人的。在有利于人的方面可以幫助我們完成購物、搶

票、分析數(shù)據(jù)等操作。但是在不利于人的方面它同樣也能打騷擾傳銷電話,給別

人帶來煩惱。網(wǎng)絡(luò)爬蟲技術(shù)是互聯(lián)網(wǎng)科技發(fā)展的產(chǎn)品,有好有壞,一個不注意可

能就會傷害到自己和他人,所以我們爬蟲人員要懂得爬蟲的合法性,在法律允許

的情況下去編寫自己的腳本程序,不要什么時候犯罪了自己還不知道。

既然有網(wǎng)絡(luò)爬蟲,那肯定也存在反爬蟲的技術(shù)了,那些大網(wǎng)站去爬蟲基本上

都會涉及到反爬蟲的概念,因為爬蟲訪問速度太快會給服務(wù)器增加壓力,往往做

網(wǎng)站的都會使用反爬措施。比較常見的反爬機制有通過User-Agent效驗反爬、

訪問頻度反爬、變換網(wǎng)頁結(jié)構(gòu)反爬、賬號權(quán)限、驗證碼效驗等等手段,這些手

段會防止我們爬蟲的訪問,但是這樣也會加大做網(wǎng)站的成本。所以,一般那種

小網(wǎng)站設(shè)置一個小反爬或者不設(shè)置,對于我們數(shù)據(jù)采集也會加快效率,畢竟我們

就只是拿到自己所需要的數(shù)據(jù),也不管網(wǎng)站的訪問壓力和成本,我們爬蟲的主

要目的還是拿到自己需要的數(shù)據(jù)。

2.3.2文件存取技術(shù)

Python內(nèi)置csv模塊如圖2-1、2-2所示。

圖2-1python清洗完的數(shù)據(jù)寫入csv模塊

圖2-2讀取數(shù)據(jù)的方法

5

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

2.3.3可視化技術(shù)

我們爬蟲爬取下來的數(shù)據(jù)難道就放在哪里不管嗎?肯定不是,經(jīng)過清洗處

理后的數(shù)據(jù)我們是要進行畫圖的,公司的領(lǐng)導(dǎo)他往往不在意你是怎么將數(shù)據(jù)爬

取的,他看的僅僅只是一個結(jié)果罷了,要看的就是你的圖形所形成的一些結(jié)論,

對于他們而言如果圖形顯示的結(jié)論對他們公司的發(fā)展才是最主要的,因此我們

清洗處理的數(shù)據(jù)要畫出圖形的形式來形成可靠的結(jié)論。

本次項目中,我是將得到的數(shù)據(jù)用matplotlib來進行數(shù)據(jù)可視化操作,

matplotlab中包含了許多庫,最重要的pyplot來進行畫圖操作,里面有各種各

樣的圖形,比如餅圖、條形圖、折線圖、散點圖等圖形,可以很好的將數(shù)據(jù)進

行對比的方式表現(xiàn)出來,圖形呈現(xiàn)出來的結(jié)果一清二楚,很容易就可以形成穩(wěn)

當(dāng)?shù)慕Y(jié)論。

3數(shù)據(jù)采集

3.1采集頁面分析

我們首先通過谷歌瀏覽器搜索今日頭條的官方網(wǎng)頁,然后找到新聞板塊頁

面觀察圖3-1,其中的URL為:/。然后點擊頁面下方

的板塊按鈕,同時觀察URL,發(fā)現(xiàn)URL會變化成其他頁面的數(shù)據(jù)。

圖3-1數(shù)據(jù)網(wǎng)址頁面

按F12調(diào)出開發(fā)者工具,調(diào)到元素面板的位置,如圖3-2。

6

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

圖3-2開發(fā)者工具

利用全局搜索工具定位所需板塊的位置,可以看到許多板塊的元素位置所

在的板塊名稱,所有板塊的數(shù)據(jù)再利用搜索工具定位,最后找到了數(shù)據(jù),如圖3-3。

圖3-3FormData

3.2字段分析

我們首先來到網(wǎng)頁面打開網(wǎng)頁的板塊欄,可以看到一個板塊里面有許多新

聞數(shù)據(jù),而一個新聞數(shù)據(jù)里面包括了標(biāo)題、作者、評論等,并且每個新聞數(shù)據(jù)

還有二級頁面,里面又會有精確的發(fā)布日期和點贊數(shù)量等數(shù)據(jù),來到板塊頁面,

這時候隨便定位一個新聞數(shù)據(jù)字段到元素面板里面去,也就是定位到我們所需

要的數(shù)據(jù)所在的位置,然后在里面我們會看到標(biāo)題、評論數(shù)量、作者等字段,找

到新聞數(shù)據(jù)標(biāo)題右鍵復(fù)制他元素所在位置,如圖3-4,可以看到我們需要的所有

7

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

的數(shù)據(jù)信息都是在這些個元素div里面,并且二級頁面在標(biāo)題所在元素的屬性

里面,我們知道他是一個動態(tài)網(wǎng)站,所以我們爬取的時候可以用selenium爬取

來獲得這些數(shù)據(jù),還需要再訪問里面的二級頁面,因為二級頁面是靜態(tài)的,所

以我們用requests就可以獲取,然后使用一些措施cookies,User-Agent來防

止網(wǎng)站所做的反爬,這樣我們就可以把自己所需要的字段全部獲取到。

圖3-4分析數(shù)據(jù)類型頁面

3.3編程實現(xiàn)

導(dǎo)入所需庫如圖3-5所示。

圖3-5導(dǎo)入所需庫頁面

在二級頁面設(shè)置cookies,User-Agent防止網(wǎng)站反爬措施,如圖3-6所示。

8

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

圖3-6防止網(wǎng)站反爬頁面

代碼實現(xiàn)如下:

fromseleniumimportwebdriver

frommon.byimportBy

fromselenium.webdriver.support.uiimportWebDriverWait

fromselenium.webdriver.supportimportexpected_conditionsasEC

fromtimeimportsleep

importrequests

fromlxmlimportetree

importpandasaspd

driver=webdriver.Chrome()

driver.get('/')

driver.maximize_window()

wait=WebDriverWait(driver,10)

###############爬取六個字段的數(shù)據(jù)#################

title_list=[]

author_list=[]

url_list=[]

comment_list=[]

date_list=[]

like_list=[]

###############需要進行數(shù)據(jù)處理的兩個字段#################

like_to_list=[]

date_to_list=[]

foriinrange(1,4):

#############爬取一級頁面的數(shù)據(jù)##############

ifi==1:

caizheng_click=wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,'#root

>div>div.main-content>div.left-container>div>div>div>div.main-nav-wrapper>div>ul

>li:nth-child(5)>div>div')))

caizheng_click.click()

elifi==2:

keji_click=wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,'#root>div

9

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

>div.main-content>div.left-container>div>div>div>div.main-nav-wrapper>div>ul>

li:nth-child(6)>div>div')))

keji_click.click()

elifi==3:

junshi_click=wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,'#root>

div>div.main-content>div.left-container>div>div>div>div.main-nav-wrapper>div>ul>

li:nth-child(8)>div>div')))

junshi_click.click()

else:

print('------結(jié)束-----')

#####頁面下滑######

js='window.scrollTo(0,1000000)'

forainrange(1,10):

driver.execute_script(js)

sleep(3)

title=

wait.until(EC.presence_of_all_elements_located((By.XPATH,'//*[@class="feed-card-wrapper

feed-card-article-wrapper"]/div/div[@class="feed-card-article-l"]/a')))

foryintitle:

title_list.append(y.text)

author=

wait.until(EC.presence_of_all_elements_located((By.XPATH,'//*[@class="feed-card-wrapper

feed-card-article-wrapper"]/div/div[@class="feed-card-article-l"]/div/div[1]/div[1]/a')))

forjinauthor:

author_list.append(j.text)

comment=

wait.until(EC.presence_of_all_elements_located((By.XPATH,'//*[@class="feed-card-wrapper

feed-card-article-wrapper"]/div/div[@class="feed-card-article-l"]/div/div[1]/div[2]')))

forgincomment:

comment_list.append(g.text)

url=

wait.until(EC.presence_of_all_elements_located((By.XPATH,'//*[@class="feed-card-wrapper

feed-card-article-wrapper"]/div/div[@class="feed-card-article-l"]/a')))

url_second=[]

forhinurl:

url_list.append(h.get_attribute('href'))

url_second.append(h.get_attribute('href'))

#############爬取二級頁面的數(shù)據(jù)###############

forurl_twoinurl_second:

headers={

'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36

10

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

(KHTML,likeGecko)Chrome/Safari/537.36',

}

cookies={}

cookie_str=

'__ac_signature=_02B4Z6wo00f01i4EHzwAAIDCrgblfEayEwouJBuAAOhz8f;

tt_webid=7197990955332175416;ttcid=931cd989614442e7aaf60d3b2f0c70e553;

local_city_cache=%E6%80%80%E5%8C%96;csrftoken=1e7056849266aac39ec24425869007e3;

_ga=GA1.1.977725661.1675912885;

s_v_web_id=verify_ldwj9er3_6sXNlQah_qzej_4jAw_8Ezu_kC5VW3BhgDDp;

passport_csrf_token=6a5361d82a809629deed33cae496ee2d;

passport_csrf_token_default=6a5361d82a809629deed33cae496ee2d;

d_ticket=0db7f1463edb612e95798a66092921d67f8f1;

n_mh=Th42YvXXHV6dXljeqBEg_2wudPZwjQhLvMzwKrB2Vc8;

sso_auth_status=c44615f01c32a9468b1bc3453c8434c9;

sso_auth_status_ss=c44615f01c32a9468b1bc3453c8434c9;

sso_uid_tt=d9da04dddc6a9c197307f5953259e22a;

sso_uid_tt_ss=d9da04dddc6a9c197307f5953259e22a;

toutiao_sso_user=8b306d8e8c210af867597426da1266d8;

toutiao_sso_user_ss=8b306d8e8c210af867597426da1266d8;

sid_ucp_sso_v1=1.0.0-KGQ2ZjNlZDZjMTliZGY2MTIyNjFiNTM4ZmIxZWFiOWZhODkxZjU

2ZDgKHQiA4pCUh41PEIXPkZ8GGBggDDD80pycBjgCQPEHGgJobCIgOGIzMDZkOGU4Yz

IxMGFmODY3NTk3NDI2ZGExMjY2ZDg;

ssid_ucp_sso_v1=1.0.0-KGQ2ZjNlZDZjMTliZGY2MTIyNjFiNTM4ZmIxZWFiOWZhODkxZjU

2ZDgKHQiA4pCUh41PEIXPkZ8GGBggDDD80pycBjgCQPEHGgJobCIgOGIzMDZkOGU4Yz

IxMGFmODY3NTk3NDI2ZGExMjY2ZDg;

passport_auth_status=71f97315913adb87b1ec8e46257dd581,e2a4562494fb349737555c7ff1c422

95;

passport_auth_status_ss=71f97315913adb87b1ec8e46257dd581,e2a4562494fb349737555c7ff1c4

2295;

sid_guard=47959d61f9717944e84a942c49461713|1675913093|5184000|Mon,+10-Apr-2023+03:

24:53+GMT;uid_tt=8853e4ac8bf1162270c201775fba157d;

uid_tt_ss=8853e4ac8bf1162270c201775fba157d;sid_tt=47959d61f9717944e84a942c49461713;

sessionid=47959d61f9717944e84a942c49461713;

sessionid_ss=47959d61f9717944e84a942c49461713;

sid_ucp_v1=1.0.0-KGNiNjlkN2RlMDJjOTJiZTBlZWU3MDMwZjc2YmRiMGVjMDY5YTMx

NDkKFwiA4pCUh41PEIXPkZ8GGBggDDgCQPEHGgJobCIgNDc5NTlkNjFmOTcxNzk0NGU

4NGE5NDJjNDk0NjE3MTM;

ssid_ucp_v1=1.0.0-KGNiNjlkN2RlMDJjOTJiZTBlZWU3MDMwZjc2YmRiMGVjMDY5YTMx

NDkKFwiA4pCUh41PEIXPkZ8GGBggDDgCQPEHGgJobCIgNDc5NTlkNjFmOTcxNzk0NGU

4NGE5NDJjNDk0NjE3MTM;store-region=cn-hn;store-region-src=uid;

odin_tt=8434f6eebec62c22c8baceeac91e8a90edcb9bcf16ffda0add896154c6f7df65e68b322a545f

241ced1900252aba4434;_S_WIN_WH=1600_749;_S_DPR=1;_S_IPAD=0;

11

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

__feed_out_channel_key=digital;

tt_anti_token=xK3mogMCnZJPlsR-fc2e8ead4c8f27c105d3764d05d12fbb527c5ae9c68d669f2cab

8dd281659a53;

ttwid=1|4MK0pKYeyqpTf16tO6x2WEoOpP-HRkG7TnUpvn3IXdw|1676785746|fef06d7362510

8f78119be706ec152382bd592d8530396cba075fd89224bbdd6;

tt_scid=k3c0JS6Kl4YYWu.D6piUv.pJJJCwcacjWHlHcR57hhAQnxe-TTw2D956.4ROi4oWd7c6

;

msToken=jCf55VTd-ehO-Zj6K5nAwi0DLPA0clV9CNffBaPzN_x4BC6PcqVkK_4lGR43jFAzT

TIP_VW1DW12WByOvmTQ-3rQB9SAMsdnsAIDqV3_Ryg=;

_ga_QEHZPBE5HH=GS1.1.16767856767858'

forcookieincookie_str.split(';'):

k,v=cookie.split('=',1)

cookies[k]=v

rq=requests.get(url_two,headers=headers,cookies=cookies)

html=etree.HTML(rq.text,parser=etree.HTMLParser(encoding='utf-8'))

like=html.xpath('//*[@class="detail-like"]/span/text()')

date=html.xpath('//*[@class="article-meta"]/span[last()-2]/text()')

like_list.append(like)

date_list.append(date)

url_second.clear()

#############爬取的數(shù)據(jù)進行處理###############

forminlike_list:

ifm==[]:

like_to_list.append('')

else:

like_to_list.append(m[0])

fornindate_list:

ifn==[]:

date_to_list.append('')

else:

date_to_list.append(n[0])

data=pd.DataFrame({'標(biāo)題':title_list,

'作者':author_list,

'點贊數(shù)量':like_to_list,

'評論數(shù)量':comment_list,

'發(fā)布日期':date_to_list,

'網(wǎng)址':url_list

})

data.to_csv(r'D:\20大數(shù)據(jù)2班17劉阿康畢業(yè)設(shè)計\data.csv')

print('verynice')

12

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

4數(shù)據(jù)清洗與處理

獲得許多的數(shù)據(jù)集后我們需要對數(shù)據(jù)進行清洗和處理,也就是所謂的檢查,

確定爬取過來的數(shù)據(jù)是否存在無效值和確實值,要保證數(shù)據(jù)的一致性,這個對

于數(shù)據(jù)質(zhì)量的評估是一項很非常重要的任務(wù)。不僅如此,我們需要將數(shù)據(jù)進行有

理化和有序化,這樣子才能夠在數(shù)據(jù)調(diào)用共享過程中方便很多開發(fā)人員對數(shù)據(jù)

信息的使用。

本次新聞爬取項目中,我們需要將爬下來的數(shù)據(jù)進行對比操作,并且檢查

是否出現(xiàn)空值、錯值,還有數(shù)據(jù)的位置是否正確。根據(jù)不同的需求我們要對數(shù)據(jù)

進行不同的處理。

4.1數(shù)據(jù)清洗

圖4-1數(shù)據(jù)清洗準(zhǔn)備頁面

經(jīng)過比對操作,發(fā)現(xiàn)數(shù)據(jù)存在缺失值,主要是點贊數(shù)量和評論數(shù)量這兩個

字段,但是評論數(shù)量這一列有時間的數(shù)據(jù),因為可能有的新聞還沒有人去評論

所導(dǎo)致的,那么我們就要將缺失數(shù)據(jù)統(tǒng)一規(guī)劃去掉不要的行列數(shù)據(jù),防止數(shù)據(jù)出

錯。因此我們只需保留需要的數(shù)據(jù),然后分析、清洗,最后存入data.csv文件

中,以便后面的可視化操作,如圖4-1所示。

13

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

圖4-2數(shù)據(jù)清洗完成界面

4.2數(shù)據(jù)儲存

數(shù)據(jù)儲存的方法比較多,直接用其他文件的形式儲存如csv、excel等,但

是以上方法保存的數(shù)據(jù)體量普遍都比較小。如果需要儲存較大的數(shù)據(jù)信息就需

要用到我們的數(shù)據(jù)庫,數(shù)據(jù)庫分為關(guān)系型和非關(guān)系型數(shù)據(jù)庫。關(guān)系型數(shù)據(jù)庫比較

典型的有MySQL和Oracle等,非關(guān)系型數(shù)據(jù)庫等以鍵值對形式儲存數(shù)據(jù)的代表

有Mongodb、Redis等。本次項目因為數(shù)據(jù)并不是特別多,所以我們用到的是csv

文件形式來儲存今日頭條新聞類的數(shù)據(jù),如圖4-3所示。

圖4-3數(shù)據(jù)存儲為csv頁面

14

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

4.3編程實現(xiàn)

先訪問我們爬取下來的數(shù)據(jù)如圖4-4所示。

圖4-4數(shù)據(jù)顯示頁面

然后對數(shù)據(jù)框檢查缺失值操作如圖4-5所示。

圖4-5數(shù)據(jù)處理缺失值頁面

再對評論數(shù)量進行篩選操作去掉后面的評論如圖4-6所示。

圖4-6數(shù)據(jù)篩選頁面

最后把發(fā)布日期轉(zhuǎn)化為時間戳索引結(jié)果如圖4-7所示。

圖4-7數(shù)據(jù)選定索引頁面

15

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

5數(shù)據(jù)統(tǒng)計與分析

5.1數(shù)據(jù)準(zhǔn)備

導(dǎo)入相關(guān)庫,使用pandas加載源數(shù)據(jù),如圖5-1、5-2。

圖5-1數(shù)據(jù)準(zhǔn)備頁面

圖5-2數(shù)據(jù)加載頁面

16

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

5.2數(shù)據(jù)展示

5.2.1依據(jù)點贊數(shù)量、評論數(shù)量進行統(tǒng)計

圖5-3數(shù)據(jù)展示頁面

從圖5-3中我們可以看到王亞男航空說基本上占據(jù)了一半的比例,而其他

的大約都在10%的比例當(dāng)中,在這五個當(dāng)中軍事新聞方面的加起來就已經(jīng)差不多

達到了80%了,說明了什么呢?

問題很簡單,現(xiàn)在的人普遍關(guān)注的都與我國軍事相關(guān)聯(lián),受歡迎程度非常高,

反映出人們現(xiàn)在的心中對祖國的期待越來越高,越來越想自己的祖國能夠再次

輝煌起來、再次強大起來,立于世界之林。從這些數(shù)據(jù)上反映的不光光是人們

的普遍對祖國的關(guān)注,而且更加能襯托出人們對于自己國家的熱愛程度已經(jīng)成

為歷史新高,并且熱衷于關(guān)注和普遍的發(fā)出自己的見解來為國家做出一份微小

的貢獻。隨便舉一個例子,就如排名第一的王亞男航空說,他的最受歡迎的標(biāo)

題是“神舟十四落地時,傘繩沒被切斷:兩人手拿鋸子,沖向了飛船”,就這

個標(biāo)題吸引了最多的點贊數(shù)量與非常多的評論,說明人們關(guān)注的不僅僅是軍事

方面還有科研領(lǐng)域,因為科技可以強國,這個概念讓人們也逐漸認識到它的重

要性。

17

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

5.2.2依據(jù)新聞點贊與新聞賬號做統(tǒng)計

圖5-4數(shù)據(jù)展示頁面

從圖5-4中我們可以看到前20條數(shù)據(jù)里面王亞男航空說占了四席之地,南

陽政法、南大李斌占了兩席之地,位居首位的是王亞男航空說,并且前兩名都

是一個新聞賬號的。

我們可以看出這個名為王亞男航空說的今日頭條新聞賬號是比較受歡迎的,

從名字可以看出他做的文章是關(guān)于軍事類的報道,證明當(dāng)下人們普遍關(guān)注的是

我們國家軍事方面的新聞,人們的愛國情懷高漲,并且不是普通的高漲,第一

名和第二名都是這個新聞賬號占據(jù)著,還與其他排名的遠遠的拉開差距,最高

的達到了76000的點贊數(shù)量,說明人們現(xiàn)在越來越熱衷于關(guān)于自己國家軍事方

面的信息。

不但如此,前20名與軍事相關(guān)的也占了不少,后面的排名相差不是很大,

大多在15000到30000的點贊數(shù)量,再看南陽政法,他是關(guān)于政治軍事的新聞

報道,并且也占了兩席之地,還有一個第三的排名,而且南大李斌也是這方面

的新聞報道,說明政治軍事在我國是人們現(xiàn)在普遍關(guān)注的熱度新聞。

18

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

5.2.3依據(jù)評論數(shù)量和點贊數(shù)量統(tǒng)計新聞賬號受歡迎程度

圖5-5數(shù)據(jù)展示頁面

從圖5-5我們可以看出來于見專欄這個新聞賬號他的點贊數(shù)量和評論數(shù)量

幾乎成正比,并且遠遠的超過后面的新聞賬號,這個作者做的文章是關(guān)于華為

智能產(chǎn)品方面的東西,與科技相關(guān),不難說明現(xiàn)在的華為5G產(chǎn)品深受大家的歡

迎,排名第二的全球防務(wù)觀察和后面的將令如山、球哥觀察又是與軍事相關(guān)的

東西,再一次說明現(xiàn)在人們對祖國軍事方面的關(guān)注程度非常高。

還有栗滴科技、社保之心這些新聞賬號與科技相關(guān)聯(lián),尤其是排名第一位

的于見專欄評論數(shù)量是所有數(shù)據(jù)中最高的評論,并且點贊數(shù)量也不低,而且科

技方面的占了一半,軍事方面的占了一半,說明人們熱衷于在科技、軍事方面

發(fā)表自己的言論見解,再點出自己的一贊,表達他們對這方面新聞程度的關(guān)注

遠遠大于其他的新聞類數(shù)據(jù),恰恰說明現(xiàn)在的人民都普遍有著愛國情懷,期待

著祖國方方面面的變化,尤其是科技、軍事兩大類型題材的新聞信息超出了所

有新聞的點贊和評論的總和。

19

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

5.2.4依據(jù)新聞賬號、評論數(shù)量、點贊數(shù)量進行綜合統(tǒng)計

圖5-6數(shù)據(jù)展示頁面

在上圖5-6我們可以明顯的看到點贊數(shù)量高的他的評論數(shù)量不一定高,并

且相差的還非常的大,像點贊數(shù)量前十里面就占據(jù)著三個的新聞賬號王亞男航

空說在評論方面甚至連前5都排不上名,尤其是它在點贊數(shù)量排名中占據(jù)著榜

一榜二,所以剛看點贊數(shù)量并不能說明他的評論就一定會高。

不僅如此,我還發(fā)現(xiàn)上榜的新聞賬號大多

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論