【python爬虫案例】爬取微博任意搜索关键词的微博数据 |
您所在的位置:网站首页 › 默待l的微博 › 【python爬虫案例】爬取微博任意搜索关键词的微博数据 |
一、爬取目标 大家好,我是马哥。 今天分享一期python爬虫案例,爬取目标是微博的微博数据,包含: 页码, 微博id, 微博bid, 微博作者, 发布时间, 微博内容, 转发数, 评论数, 点赞数 经过分析调研,发现微博有3种访问方式,分别是: PC端网页:https://weibo.com/ 移动端:https://weibo.cn/ 手机端:https://m.weibo.cn/ 最终决定,通过手机端爬取。 这里,给大家分享一个爬虫小技巧。当目标网站既存在PC网页端,又有手机移动端,建议爬取移动端,原因是:移动端一般网页结构简单,并且反爬能力较弱,更方便爬虫爬取。 二、展示爬取结果我通过爬虫代码,爬取了某关键字下的前80页微博,部分数据如下: ![]() 一共635条数据,共80页,差不多每页不到10条的数据。 三、讲解代码 首先,导入需要用到的库: 然后,定义一个转换时间字符串的函数,因为爬取到的时间戳是GMT格式(类似这种:Fri Jun 17 22:21:48 +0800 2022)的,需要转换成标准格式: 定义一个请求头,后面发送请求的时候带上它,防止反爬: 打开chrome浏览器,按F12进入开发者模式,按照下图操作,分析出目标请求地址: ![]() 根据分析结果,编写请求代码: 直接用json格式,接收返回的数据: 下面,通过jsonpath,快速解析出各个字段数据。 科普知识:jsonpath是一种快速解析json数据的方法,语法规则有点像xpath,这里就不展开讲了。详细介绍请见: https://blog.csdn.net/qq_36595013/article/details/109455924 下面展示部分字段解析过程: 把所有的字段的list数据,拼装成DataFrame格式数据: 最后,通过to_csv,(记得加上参数 encoding='utf_8_sig')把数据持久化存储下来。 需要说明的是,微博数据爬取下来后,会存在少量重复数据,所以,去重处理一下: 最终,数据保存完毕。 四、同步视频4.1 演示视频![]() ![]() 爱学习的小伙伴,本次分析过程的完整python源码及结果数据,我已打包好,并上传至我的微信公众号"老男孩的平凡之路",后台回复"爬微博"即可获取! ![]() 我是@马哥python说,持续分享python干货中! |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |