七夕过后,你分析过自己单身原因的原因吗?
昨天的朋友圈都在喪心病狂的秀恩愛,秀520紅包!于是就有人出來普法教育。。。
可是很多老鐵連發(fā)紅包的機會都沒有。。。
為什么這么多如此優(yōu)秀的同學(xué)都還是單身呢?
一、需求背景
今天逛微博的時候發(fā)現(xiàn)一個有趣的話題#90后單身原因TOP3#
七夕之際,一份針對全國90后青年婚戀觀進行抽樣調(diào)查公布了結(jié)果。結(jié)果顯示,一線城市單身占比持續(xù)領(lǐng)先。90后單身原因TOP3:圈子小、工作忙、對愛情幻想過于完美。
單身的三大原因:圈子小、工作忙、對愛情幻想過于完美!
豬哥覺得這三個原因都并不合理,難道單身的原因難道不是因為窮嗎?
二、功能描述
好奇這個調(diào)查是怎么來的?真實性有待考證,剛好這幾天我們也學(xué)習(xí)了如何爬取微博話題,今天就來驗證一下為何如此優(yōu)秀卻依然單身!
三、技術(shù)方案
四、模擬登錄
模擬登錄之前講爬取**#周杰倫超話#**的時候已經(jīng)講過了,這里就不再重復(fù),直接貼出代碼!
五、爬取話題
1.找到話題加載數(shù)據(jù)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.代碼模擬請求數(shù)據(jù)
我們依然使用requests庫來爬取數(shù)據(jù),這次豬哥在請求的時候增加了一個參數(shù):timeout,這樣做是為了防止請求某個一直沒有應(yīng)答導(dǎo)致堵死其他請求!
3.提取微博內(nèi)容
要想提取微博內(nèi)容就需要了解請求返回的數(shù)據(jù)格式
了解數(shù)據(jù)格式之后我們就可以寫代碼提取我們想要的微博內(nèi)容啦!
上圖我們已經(jīng)拿到微博內(nèi)容,但是還有很多網(wǎng)頁標簽,我們來用正則將網(wǎng)頁標簽去掉,和開頭的話題開頭!
4.保存文件
微博內(nèi)容提取出來之后,我們將他們保存起來!
六、批量爬取
批量爬取就涉及分頁,上次我們將周杰倫超話時,它的分頁機制是:
微博超話分頁機制:根據(jù)時間分頁,每一條微博都有一個since_id,時間越大的since_id越大所以在請求時將since_id傳入,則會加載對應(yīng)話題下比此since_id小的微博,然后又重新獲取最小since_id將最小since_id傳入,依次請求,這樣便實現(xiàn)分頁
那這個話題的分頁機制也是這樣的嗎?我們來對比一下第一次請求于第二次請求的url
我們發(fā)現(xiàn)普通話題的分頁機制竟然是page的形式,看來微博對不同級別的話題有不同的分頁機制!
page形式的分頁機制,之前我們講了很多個案例,直接for循環(huán)傳入i,而這個i就當(dāng)作page就可以啦!
七、數(shù)據(jù)分析
數(shù)據(jù)分析我們采用pyecharts庫,這是一個非常好用的可視化分析庫!
先讀取數(shù)據(jù),然后使用jieba庫進行分詞和數(shù)據(jù)清洗,最后使用pyecharts庫做展示!
之前調(diào)查結(jié)果顯示單身的三大原因是:圈子小、工作忙、對愛情幻想過于完美。在我們數(shù)據(jù)分析得出的結(jié)果好像確實如此!
之前說大家單身的原因是因為窮,看來只有豬哥窮!
獲取源碼,掃描下方二維碼關(guān)注微信公眾號「裸睡的豬」,回復(fù):微博單身話題
總結(jié)
以上是生活随笔為你收集整理的七夕过后,你分析过自己单身原因的原因吗?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python爬虫的起点
- 下一篇: 学习这么美丽的事,你要不要和我一起?