推广 热搜: 公司  快速  上海  中国  企业    未来  政策  系统  公司2 

Python爬取百度实时热点排行榜

   日期:2024-11-09     作者:xinet    caijiyuan   评论:0    移动:http://www78564.xrbh.cn/mobile/news/26872.html
核心提示:今天爬取的百度的实时热点排行榜按照惯例,先下载网站的内容到本地:因为我习惯把网页整个抓到本地再来分析数据,所以会有这一步

今天爬取的百度的实时热点排行榜

Python爬取百度实时热点排行榜

按照惯例,先下载网站的内容到本地:

因为我习惯把网页整个抓到本地再来分析数据,所以会有这一步,后面会贴直接抓取并分析的代码。


开始分析数据:

我想抓取的排名,关键词和搜索指数这三个值。

打开网页源代码:

发现每个标题的各个元素是一个个td被包装在一个tr标签里面,每一个标题都是一个tr(这里注意前三个标题的tr标签是有class=‘hideline’,而后面的则没有)

 

排名 :第一个td    class=''first'

关键词:第二个td    cass = 'keyword'

搜索指数:最后一个td   class = 'last'

确定了我所需要的数据的位置了之后,可以开始写代码了。

写一个把打开本地html并返回给BeautifulSoup调用的函数:

这样,我就可以在下面的直接用本地html来测试,而不用每次都去请求百度的服务器了。

因为第一个tr装的是这些东西

 

并不是排名第一的标题,所以我用切片把它过滤掉了。

然后开始挨个赋值:

这样按道理来说应该是可以输出了,但百度还是想给我一点难度。

这里出现几个问题,

1:AttributeError: 'NoneType' object has no attribute 'get_text'

2:输出的格式

3:只有一个值

按照惯例,第一个问题应该是里面多了一些不是Tag的类型,所以就来测试一下:

输出如下:

我们可以发现前几个值都参杂了NoneType(我去源代码看了一下,并不知道是什么导致的,等以后我知道了,再回来!)

因此,我们只要把NoneType给过滤掉就行。

输出如下:

这样就解决了第一个问题,发现可以输出了,连第三个问题也解决了。

但第二个问题还在,这shit一般的格式让我很难受,导致这样的原因我猜是get_text时把一些空格符和换行符也一起输出了。

所以用replace()就应该可以解决了。

输出如下:

哦吼,这样感觉就不错了。

但强迫症患者感觉还是很难受啊,这个热度(搜索指数)的格式也太乱了。

经过一番搜索,网友的力量还是很强大的啊哈哈哈,马上就有办法了。

输出如下:

本强迫症患者终于满足了哈哈。

附上总代码:

还有直接爬取不用下载网页的总代码:

 

 

好了。完成任务,生活愉快!

本文地址:http://www78564.xrbh.cn/news/26872.html    迅博思语 http://www78564.xrbh.cn/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
 
更多>同类最新资讯
0相关评论

文章列表
相关文章
最新动态
推荐图文
最新资讯
点击排行
网站首页  |  二维码  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备2023022329号