知乎爬蟲|既然所有的生命都要死亡蘸际,那么生命的意義是什么座哩?

最近刷抖音的時(shí)候看到了一個(gè)網(wǎng)上爆火的話題

既然所有的生命都要死亡,那么生命的意義是什么捡鱼?

2000萬瀏覽八回,近8萬個(gè)回答。結(jié)果下方的評(píng)論讓我大感意外

沒有意義驾诈,只是為了活著....?

似乎所有人都很悲觀缠诅、厭世

所以今天我們就使用python爬蟲來獲取知乎這一話題下的所有評(píng)論信息,看看大家都是如何看待這一問題的乍迄?

目標(biāo)獲取

關(guān)于scrapy概念講的我嘴都麻了管引,估計(jì)大家看得也快煩死了,

直接進(jìn)入主題吧!

直接創(chuàng)建scrapy項(xiàng)目創(chuàng)建完成結(jié)構(gòu)如下:


需求分析

我們的目標(biāo)很簡(jiǎn)單闯两,抓取知乎該話題下的所有評(píng)論褥伴、作者、首頁

評(píng)論點(diǎn)贊數(shù)和評(píng)論時(shí)間并將其保存做可視化分析

網(wǎng)頁分析

F12點(diǎn)擊查看網(wǎng)頁源碼漾狼,所有評(píng)論信息如下:都在一個(gè)名為data的數(shù)據(jù)文件中存儲(chǔ)重慢。

所以第一步我們需要先獲取該文件從而獲取我們所需信息


item定義

上面已經(jīng)分析出我們的5個(gè)需求,我們?cè)趇tems.py中定義如下:

#?作者首頁

photo?=?scrapy.Field()

#?作者名稱

name?=?scrapy.Field()

#?評(píng)論時(shí)間

cmt_time?=?scrapy.Field()

#?評(píng)論點(diǎn)贊數(shù)

stars?=?scrapy.Field()

#?評(píng)論內(nèi)容

comments?=?scrapy.Field()


發(fā)送請(qǐng)求

找到網(wǎng)頁請(qǐng)求的真實(shí)鏈接逊躁,如下:

然后我們使用scrapy在spider_zhihu.py文件中發(fā)送請(qǐng)求

為了防止被網(wǎng)站反爬似踱,我們加上headers。

defparse(self,?response):

zhihu_data?=?response.json()

ic(zhihu_data)

可以看到稽煤,我們已經(jīng)成功的獲取到了該json格式數(shù)據(jù)集

但是我們的數(shù)據(jù)是存儲(chǔ)在data列表中的核芽,所以我么還需進(jìn)一步獲取到data列表才能獲取到目標(biāo)數(shù)據(jù)

forzhinzhihu:

#?作者名稱

item['name']?=?zh['author']['member']['name']

#?作者座右銘

item['motto']?=?zh['author']['member']['headline']

#?評(píng)論時(shí)間

cmt_time?=?zh['created_time']

item['cmt_time']?=?time.strftime('%Y-%m-%d?%H:%M',?time.localtime(cmt_time))

#?評(píng)論點(diǎn)贊數(shù)

item['stars']?=?zh['vote_count']

#?評(píng)論內(nèi)容

item['comments']?=?zh['content']

'''

沉吟??如果把一生分成兩半,那么前半段一定是“不猶豫”酵熙,后半段一定是“不后悔”轧简。? 2021-09-21 20:06 ?????0????????????????????????生命本來沒有意義,但總有一些事和一些人讓它變得有意義匾二。

梅鶯苗刀?????????????????????????????????一個(gè)悟家哮独。? 2021-11-13 23:43 ?????0??這可能是最正的一個(gè)回答,請(qǐng)列位耐心看完

如果死亡沒有意義察藐,那么活著能有什么意義...

嘿?小家伙????????????????????????????????快樂不期而至??2021-02-04?00:53??????0???????????????????????????????????????????????延長(zhǎng)生命

小羅???????????????? KeepFit健身工作室創(chuàng)始人自律即自由借嗽!? 2018-09-01 10:07 ???? 1 ????????????????????????????????????死了不是你另一種活著的方式嗎

看著辦????????????????????????????????不知道說什么??2021-01-05?13:17??????0??????????????????????????????????????????就是你不想死的意義

'''

需求現(xiàn)在已經(jīng)實(shí)現(xiàn),我們現(xiàn)在要做的就是將數(shù)據(jù)拋給pipeline转培,讓他自行去下載专甩,這一步scrapy已經(jīng)寫好了嬉荆,我們只需打開開關(guān)即可

ITEM_PIPELINES?=?{

'zhihu.pipelines.ZhihuPipeline':300,

}


多頁獲取

我們提取多頁鏈接如下觀察規(guī)律:

https://www.zhihu.com/api/v4/questions/288017836/root_comments?limit=10&offset=0&order=normal&status=open

https://www.zhihu.com/api/v4/questions/288017836/root_comments?limit=10&offset=10&order=normal&status=open

https://www.zhihu.com/api/v4/questions/288017836/root_comments?limit=10&offset=20&order=normal&status=open

https://www.zhihu.com/api/v4/questions/288017836/root_comments?limit=10&offset=20&order=normal&status=open

https://www.zhihu.com/api/v4/questions/288017836/root_comments?limit=10&offset=40&order=normal&status=open


每頁數(shù)據(jù)展示數(shù)目由limit=10控制;翻頁參數(shù)由page控制琉闪。

所以我們多頁鏈接構(gòu)造如下:

url?=f'https://www.zhihu.com/api/v4/questions/288017836/root_comments?limit=10&offset={(page-1)*10}&order=normal&status=open'


數(shù)據(jù)下載

我們還是使用openpyxl將數(shù)據(jù)下載到Excel中然后做數(shù)據(jù)分析。

wb?=?Workbook()

ws?=?self.wb.active

ws.append(['作者首頁','作者名稱','評(píng)論時(shí)間','點(diǎn)贊人數(shù)','評(píng)論內(nèi)容'])

line?=?[item['photo'],?item['name'],?item['cmt_time'],?item['stars'],?item['comments']]

ws.append(line)

wb.save('../知乎.xlsx')

數(shù)據(jù)抓取成功部分展示如下:


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

接下來我們使用pandas對(duì)獲取到的數(shù)據(jù)進(jìn)行去重和去空等處理

pd.set_option('display.max_columns',None)#?顯示完整的列

pd.set_option('display.max_rows',None)#?顯示完整的行

pd.set_option('display.expand_frame_repr',False)#?設(shè)置不折疊數(shù)據(jù)

#?讀取數(shù)據(jù)

rcv_data?=?pd.read_excel('../知乎.xlsx')

#?刪除重復(fù)記錄和缺失值

rcv_data?=?rcv_data.drop_duplicates()

rcv_data?=?rcv_data.dropna()

#?抽樣展示

print(rcv_data.sample(5))

'''

138 ?看前面一條狗???????????????無聊不? 2021-03-01 14:18 ?????0???????????????????????????????????意義不就在于你活著的這個(gè)過程嗎删窒?

150??微笑面對(duì)人參??有些鳥兒是注定不會(huì)被關(guān)在牢籠里的??2021-06-12?10:28??????0????????????????????????????????????????根本沒空思考這樣的問題

352??????優(yōu)秀??????????十年?duì)I養(yǎng)護(hù)膚導(dǎo)師??2020-12-14?19:25??????0??????????????生命是在于你自己去尋找發(fā)現(xiàn)它的意義裂垦,如果你覺得毫無意義,那它就是毫無意義的

161?????Ani????????????????營銷??2021-02-28?19:56??????0?????????????????????????????????2021年了我還是沒有想到問題的答案

294?????喵姐姐???????????????設(shè)計(jì)師??2021-01-04?20:15??????0??就像稍縱即逝的煙火肌索,雖然只是一瞬間蕉拢,但是它存在過,生命的意義就在于當(dāng)某個(gè)瞬間回顧自己的過去時(shí)...

'''


詞云展示

我們使用stylecloud來繪圖诚亚,部分代碼如下:

有興趣的小伙伴可以參考:

如何使用python實(shí)現(xiàn)一個(gè)優(yōu)雅的詞云晕换?(超詳細(xì))

defvisual_ciyun():

pic?='../img.jpg'

gen_stylecloud(text=result,

icon_name='fab?fa-android',

font_path='msyh.ttc',

background_color='white',

output_name=pic,

custom_stopwords=stop_words

)

print('詞云圖繪制成功!')


知乎詞頻圖

這里我們使用熊貓來讀取數(shù)據(jù),并去除空行站宗。使用jieba制作分詞

有興趣的小伙伴可以參考

讓人無法拒絕的pandas技巧闸准,簡(jiǎn)單卻好用到爆!

知乎評(píng)論出現(xiàn)頻率最高的前十個(gè)詞分別如下:

all_words?=?[wordforwordinresult.split('?')iflen(word)?>1andwordnotinstop_words]

wordcount?=?Counter(all_words).most_common(10)

x1_data,?y1_data?=?list(zip(*wordcount))

print(x1_data)

print(y1_data)

'''

('意義',?'生命',?'活著',?'沒有',?'自己',?'死亡',?'問題',?'我們',?'存在',?'如果')

(116,?76,?59,?38,?27,?25,?24,?17,?16,?13)

'''

詞頻氣泡圖

評(píng)論點(diǎn)贊最多

我們將所有評(píng)論按照點(diǎn)贊量從大到小排列如下:


評(píng)論時(shí)間

從時(shí)間軸可以分析出梢灭,這個(gè)問題在2018/08/02 14:26關(guān)注度達(dá)到了頂峰夷家,

2018/08/03 01:51關(guān)注度隨著時(shí)間推移開始下降

評(píng)論內(nèi)容

前三評(píng)論如下:

我不喜歡整理床鋪,我媽罵我敏释,我說:反正要搞亂為啥要整理库快,我媽:你反正要餓,為啥要吃飯

這是個(gè)很有意義的問題钥顽,想了幾年了义屏,我還是沒有很好的答案

活著只是為了活著,不為了任何別的


情感分析

我們以點(diǎn)贊最多評(píng)論為例分析觀眾對(duì)知乎的一些看法進(jìn)行簡(jiǎn)單分析

我們是使用的庫是SnowNLP

SnowNLP是一個(gè)基于Python的情感分析工具庫耳鸯,可以進(jìn)行中文分詞湿蛔、詞性標(biāo)注、情感分析县爬、文本分類阳啥、文本關(guān)鍵詞提取等。

SnowNLP的情感值取值范圍為0到1之間财喳,值越大察迟,說明情感傾向越積極。

pinglun?='活著只是為了活著耳高,不為了任何別的'

Sentiment_analysis?=?SnowNLP(pinglun).sentiments

print(Sentiment_analysis)

'''

0.5941963504212545

'''

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末扎瓶,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子泌枪,更是在濱河造成了極大的恐慌概荷,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件碌燕,死亡現(xiàn)場(chǎng)離奇詭異误证,居然都是意外死亡继薛,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門愈捅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來遏考,“玉大人,你說我怎么就攤上這事蓝谨」嗑撸” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵譬巫,是天一觀的道長(zhǎng)咖楣。 經(jīng)常有香客問我,道長(zhǎng)缕题,這世上最難降的妖魔是什么截歉? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮烟零,結(jié)果婚禮上瘪松,老公的妹妹穿的比我還像新娘。我一直安慰自己锨阿,他們只是感情好宵睦,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著墅诡,像睡著了一般壳嚎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上末早,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天烟馅,我揣著相機(jī)與錄音,去河邊找鬼然磷。 笑死郑趁,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的姿搜。 我是一名探鬼主播寡润,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼舅柜!你這毒婦竟也來了梭纹?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤致份,失蹤者是張志新(化名)和其女友劉穎变抽,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡绍载,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年太伊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片逛钻。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖锰提,靈堂內(nèi)的尸體忽然破棺而出曙痘,到底是詐尸還是另有隱情,我是刑警寧澤立肘,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布边坤,位于F島的核電站,受9級(jí)特大地震影響谅年,放射性物質(zhì)發(fā)生泄漏茧痒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一融蹂、第九天 我趴在偏房一處隱蔽的房頂上張望旺订。 院中可真熱鬧,春花似錦超燃、人聲如沸区拳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽樱调。三九已至,卻和暖如春届良,著一層夾襖步出監(jiān)牢的瞬間笆凌,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來泰國打工士葫, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留乞而,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓为障,卻偏偏與公主長(zhǎng)得像晦闰,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子鳍怨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容