點擊上方“ 何 俊林 ”,馬上關注,每天早上 8:50 準時推送
真愛,請置頂或星標
昨天的朋友圈都在喪心病狂的秀恩愛,秀520紅包!于是就有人出來普法教育。。。
可是還有更多老鐵連發紅包的機會都沒有。。。
為什么這么多如此優秀的同學都還是單身呢? 你有分析過自己單身的原因嗎?
一、需求背景
今天逛微博的時候發現一個有趣的話題 #90后單身原因TOP3#
七夕之際,一份針對全國90后青年婚戀觀進行抽樣調查公布了結果。結果顯示,一線城市單身占比持續領先。90后單身原因TOP3: 圈子小、工作忙、對愛情幻想過于完美 。
單身的三大原因: 圈子小、工作忙、 對愛情幻想過于完美 !
豬哥覺得這三個原因都并不合理,難道單身的原因難道不是因為 窮 嗎?
二、功能描述
好奇這個調查是怎么來的?豬哥認為真實性有待考證,剛好這幾天我們也學習了如何爬取微博話題,今天就來分析一下為何很多同學如此優秀卻依然單身!
三、技術方案
-
模擬登錄微博
-
爬取話題
-
保存文件
-
數據清洗
-
數據分析
四、模擬登錄
模擬登錄之前講爬取 #周杰倫超話# 的時候已經講過了,這里就不再重復,直接貼出代碼!
五、爬取話題
1.找到話題加載數據url
https://m.weibo.cn/api/container/getIndex?containerid=100103type%3D61%26q%3D%2390%E5%90%8E%E5%8D%95%E8%BA%AB%E5%8E%9F%E5%9B%A0TOP3%23%26t%3D0&isnewpage=1&extparam=pos%3D41%26c_type%3D31%26realpos%3D40%26flag%3D0%26filter_type%3Drealtimehot%26cate%3D0%26display_time%3D1565179797&luicode=10000011&lfid=106003type%3D25%26t%3D3%26disable_hot%3D1%26filter_type%3Drealtimehot&page_type=searchall
2.代碼模擬請求數據
我們依然使用 requests庫 來爬取數據,這次豬哥在請求的時候增加了一個參數: timeout ,這樣做是為了防止請求某個一直沒有應答導致堵死其他請求!
3.提取微博內容
要想提取微博內容就需要了解請求返回的數據格式
了解數據格式之后我們就可以寫代碼提取我們想要的微博內容啦!
上圖我們已經拿到微博內容,但是還有很多網頁標簽,我們來用正則將網頁標簽去掉,和開頭的話題開頭!
4.保存文件
微博內容提取出來之后,我們將他們保存起來!
六、批量爬取
批量爬取就涉及分頁,上次我們將周杰倫超話時,它的分頁機制是:
微博超話分頁機制:根據時間分頁,每一條微博都有一個since_id,時間越大的since_id越大所以在請求時將since_id傳入,則會加載對應話題下比此since_id小的微博,然后又重新獲取最小since_id將最小since_id傳入,依次請求,這樣便實現分頁
那這個話題的分頁機制也是這樣的嗎?我們來對比一下第一次請求與第二次請求的url
我們發現普通話題的分頁機制竟然是 page 的形式, 看來微博對不同級別的話題有不同的分頁機制!
page形式的分頁機制,之前我們講了很多個案例,直接for循環傳入i,而這個i就當作page就可以啦!
七、數據分析
數據分析我們采用
pyecharts庫
,這是一個非常好用的可視化分析庫!
先讀取數據,然后使用jieba庫進行分詞和數據清洗,最后使用
pyecharts庫
做展示!
之前調查結果顯示單身的三大原因是: 圈子小、工作忙、對愛情幻想過于完美 。在我們數據分析得出的結果好像確實如此!
說句題外話,有不少人想加魚哥微信,魚哥姑且放出來,但是坑位有限哦


更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
