前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >知乎微博热榜爬取

知乎微博热榜爬取

作者头像
老肥码码码
发布2020-01-17 15:30:20
1.8K0
发布2020-01-17 15:30:20
举报
文章被收录于专栏:算法与数据之美

点击上方“算法与数据之美”,选择“置顶公众号”

更多精彩等你来!

热榜是当下互联网上按受关注程度由高到低进行的排行,指热门的排行榜。了解热榜,便可时刻掌握最新潮流动态。

百度有风云榜,搜狗有搜狗指数,微博有热搜,这些榜单都是社会当前关注的热点。今天我们就来实战爬取一下热榜并进行定时更新。

微博热搜

首先,我们对微博热搜进行爬取,直接打开热搜页面,并查看其网页源代码。

我们可以看到每一个热搜以及对应的 href 链接都整齐的放在标签之下,我们可以选择用 BeautifulSoup 库也就是美丽汤,也可以选择使用 XPath 来进行简单的爬取。

需要注意的是给出的链接是不完整的,需要加上前缀 https://s.weibo.co 。

知乎热榜

知乎的热榜看起来似乎要难抓取一些,因为当我利用 requests 访问热榜时,返回的html页面并不是我所看到的页面,这是因为知乎采用了一定的反爬措施,怎么办呢?

Cookie中带有我们登录的信息,在 headers 中加入Cookie应该就能骗过网站,一试果然能行~

定时爬取

说到定时任务,我们可能会想起 Linux 中自带的 crontab ,windows 自带的任务计划,这些都可以实现定时运行程序的任务。

但今天我们给出的方法是利用 apscheduler 这个第三方库。使用这个库的方法也非常简单,下面实现的是每20分钟运行一次 main 函数。

代码语言:javascript
复制
from apscheduler.schedulers.blocking import BlockingScheduler
scheduler=BlockingScheduler()
scheduler.add_job(func=main,trigger='interval',minutes=20)
scheduler.start()

每隔20分钟,就执行一次爬取任务,清空之前的数据库,并将新热榜数据写入数据库。

More

这里只叙述了数据爬取的部分。

GitHub上有个成熟的项目,是用Go语言编写的:今日热榜,一个获取各大热门网站热门头条的聚合网站。

摸鱼必备,传送门左下角。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法与数据之美 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档