前两天偶然在微博看到这样的一个关于520,七夕,情人节等等的普法教育。。。!相信前几天的七夕很多小仙女都收到了来自对方的爱意! 可是还有很多伙伴连发红包的机会都没有。。。 我就是这类,没收到爱意,也没机会送出爱意的这类!我也不知道我为什么还单着!哈哈哈,我想知道,这么多单着的人,你们单着是因为什么!爬虫!爬虫!爬虫! 大家说说,单着的这么多人,有分析过为什么如此优秀的你却还是单身呢? 一、需求背景今天逛微博的时候发现一个有趣的话题#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.保存文件 微博内容提取出来之后,我们将他们保存起来! 六、批量爬取批量爬取就涉及分页,上次我们将周杰伦超话时,它的分页机制是:
那这个话题的分页机制也是这样的吗?我们来对比一下第一次请求与第二次请求的url 我们发现普通话题的分页机制竟然是page的形式,看来微博对不同级别的话题有不同的分页机制! page形式的分页机制,之前我们讲了很多个案例,直接for循环传入i,而这个i就当作page就可以啦! 七、数据分析数据分析我们采用pyecharts库,这是一个非常好用的可视化分析库! 先读取数据,然后使用jieba库进行分词和数据清洗,最后使用pyecharts库做展示! 之前调查结果显示单身的三大原因是:圈子小、工作忙、对爱情幻想过于完美。在我们数据分析得出的结果好像也确实如此!哈哈哈,难怪我也单身,每天忙着跟你们出文章教程啊!你们单身是因为什么啊! |
|
来自: 千锋Python学堂 > 《Python基础教程分享》