知行编程网知行编程网  2022-01-02 20:01 知行编程网 隐藏边栏 |   抢沙发  115 
文章评分 0 次,平均分 0.0

微博热搜停更?不用怕,python教你自动保存全部热搜


众所周知,微博热搜是实时更新的,根据用户的关注度高低来确定排名情况,如果错过了,就再也找不到了。由于种种原因,微博从昨天开始停止更新了,一直停留在6月10日15点:
微博热搜停更?不用怕,python教你自动保存全部热搜
而且我们是无法查到之前的热搜内容的。为了弥补这一缺憾,我想了一个好办法,用python写个定时爬取程序,把爬取的结果保存到数据库中,这样就可以随时翻阅之前的热搜记录了,效果如下:

 

微博热搜停更?不用怕,python教你自动保存全部热搜

下面给大家详细讲解一下实现的全过程:

一、微博热搜网页分析
打开微博热搜网页,地址为:

微博热搜停更?不用怕,python教你自动保存全部热搜

以火狐浏览器为例,按F12打开流量分析工具,重新请求该网页:

微博热搜停更?不用怕,python教你自动保存全部热搜

 

发现就是个简单的静态网页,显得有点小随意
再分析一下网页内容:

微博热搜停更?不用怕,python教你自动保存全部热搜

发现每条热搜的内容及热度都在一个class="td-02"的标签下,我们可以先保存所有的该标签,然后在从中解析出热搜内容及热度。

二、用python模拟爬取微博热搜
整体思路是用requests模拟获取网页,然后用bs4解析网页,从中提取所有热搜的内容及热度。另外,因为微博必须要登录才能获取热搜信息,所以我们在用requests模拟请求的时候要带上cookie信息,而且微博的cookie信息有效值比较长,这样就省去了模拟登录的麻烦,代码如下:

三、保存到mysql数据库
关于mysql数据库的安装和配置网上教程有很多,这里就不再赘述了。
将数据保存到数据库的步骤如下:
1.先连接数据库,然后在数据库下创建新表“WEIBO”,在表内创建‘rank、content、hot、now’列,代码如下:

2.然后把爬下来的热搜数据插入数据库表格中
这样就基本完成了

四、设置定时爬取
本环节主要用到schedule函数,该函数是一个轻量级的定时任务调度库,可以完成每分钟,每小时,每天,周几,特定日期的定时任务。因此十分便于我们执行一些轻量级的定时任务,用法如下:
上述是60秒执行1次的代码,run函数主要实现上述的爬取及保存数据功能。
也可以1分钟执行1次(起始效果一样,只不过写法不同)

这样就大功告成了!如果一直运行该程序,就能把时间内的所有热搜内容都保存到数据库中。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享