首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python 超简单爬取微博热搜榜数据

微博的热搜榜对于研究大众的流量有非常大的价值。今天的教程就来说说如何爬取微博的热搜榜。热搜榜的链接是:

https://s.weibo.com/top/summary/

用浏览器浏览,发现在不登录的情况下也可以正常查看,那就简单多了。使用开发者工具(F12)查看页面逻辑,并拿到每条热搜的CSS位置,方法如下:

按照这个方法,拿到这个td标签的selector是:

pl_top_realtimehot > table > tbody > tr:nth-child(3) > td.td-02

其中nth-child(3)指的是第三个tr标签,因为这条热搜是在第三名的位置上,但是我们要爬的是所有热搜,因此:nth-child(3)可以去掉。还要注意的是 pl_top_realtimehot 是该标签的id,id前需要加#号,最后变成:

#pl_top_realtimehot > table > tbody > tr > td.td-02

你可以自定义你想要爬的信息,这里我需要的信息是:热搜的链接及标题、热搜的热度。它们分别对应的CSS选择器是:

链接及标题:#pl_top_realtimehot > table > tbody > tr > td.td-02 > a

热度:#pl_top_realtimehot > table > tbody > tr > td.td-02 > span

值得注意的是链接及标题是在同一个地方,链接在a标签的href属性里,标题在a的文本中,用beautifulsoup有办法可以都拿到,请看后文代码。

现在这些信息的位置我们都知道了,接下来可以开始编写程序。默认你已经安装好了python,并能使用cmd的pip,如果没有的话请见这篇教程:python安装。需要用到的python的包有:

BeautifulSoup4:

cmd/Terminal 安装指令:pip installbeautifulsoup4.

lxml解析器:

cmd/Terminal 安装指令:pip installlxml

lxml是python中的一个包,这个包中包含了将html文本转成xml对象的工具,可以定位标签的位置。而能用来识别xml对象中这些标签的位置的包就是Beautifulsoup4.

编写代码:

代码说明请看注释

结果:

代码说明请看注释,不过这样做,仅仅是将结果保存到数组中,结果非常不易观看,我们下面将其保存为csv文件。

效果如下,怎么样,是不是好看很多:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190919A0RS9Z00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券