热门话题榜2019年 微博热门话题排行榜

admin 3471 3
热门话题榜2019年 微博热门话题排行榜

百度网盘课程

通用入口链接!10000G.课程都有!一起学习吧!

立即点击↓ 获取课程!

热门话题榜2019年 微博热门话题排行榜

生成已解析的对象

汤=(,' lxml ')

获取标签信息

=('td ',='td-')标签=('td ',='td-02 ')

获取文本信息

获取子节点的标签信息

标签a

好了,我们只能用这个了。数据刚刚获得。让我们看看解析后的数据。

def analysis(self): ' ' extract data ' ' ' ' results=[]html s=self。get _ html () soup=美丽的汤(html,' lxml ')排名=汤。find _ all ('td ',class_='td-01ranktop ')标记=soup.find_all('td ',class _=' TD-02 ')hots=soup . find _ all(' TD ',class_='td-03')forrank,tag,hotinzip(ranks,tags,hots): results . append((rank . stringifrankelse 0,tag.a.string,tag . span . stringiftag . spanelse 999999,hot.i.stringifhot .

我们通过三个find_all方法获取所有文本,然后通过zip方法将每个组放在自己的列表中。

数据分类

本节添加的数据是按正常顺序排列的,但我不想按正序排列,我想按逆序排列,也就是浏览次数少的那个先。应该怎么做到这一点?我们需要借助python的排序方法来反转排列。

def _ _ sort(self): result=self。analysis()返回已排序(结果,key=lambda x: int (x [2]),reverse=false) # reverse sort

通过排序方法,将阅读量指定为排序关键字,实现逆序排列。

显示数据

数据已经采集整理好了,接下来需要展示采集到的数据。

我们需要以漂亮的形式显示数据,如下所示:

实现以下自写文字比较麻烦。我们可以使用python中可移植的第三方库来实现这种表单打印。

首先,让我们安装它。

pipinstallprettytable

然后编写代码来显示数据:

from prettableimportpittle table b=pittle table()sorts _ data=self。_ _ sort()TB . field _ name='排名,热门话题,阅读人数,热点类型'。split(',')foriinimports _ data:tb。add _ row (I)

然后我们执行了,很快执行结果出来了,结果打印出来了,但是报错了。

递归错误: maximumrecursiondepthe xceededincomparison

超过最大递归次数,什么鬼?这个问题我找了很久,终于找到问题了

在第1253行和第1255行可编辑的源代码中,

有一个深度复制方法,我们可以去掉它。

至于为什么,原因是在python中deepcopy是深度副本,也是浅层副本。不同的是复制完成后和原来的变量不一样,内存地址改变。这样一来,在运行过程中每次都会不断复制sorts_data列表,然后每次内存地址都不一样,总是会被执行,我们就陷入递归调用了。所以我们只需要删除这个深度复制方法,执行时不会有最大递归错误报告。

功能移除后,一切正常运行。

执行源代码

至此,我们的爬虫完成了。不要说太多废话。直接上源代码。希望能在录音的同时帮到你。

#!/usr/bin/env python 3 #-*-coding : utf-8-*-IMPORTrequestsfrombs 4 IMPORTDISPLATEllUSOupfromtableIMPORTYtabletClassWeibotop(object): def _ _ init _ _(self): self . URL=' 3359s.weibo.com/top/summary' #微博热搜地址defget_html(self): ' ' '获取web内容' ' ' r=requests . get(self . URL)Returner。textdef analysis(self): ' ' ' extract data ' ' ' results=[]html s=self。get _ html () soup=美丽的汤(html,' lxml ')排名=汤。find _ all ('td ',class_='td-01ranktop ')标记=soup.find_all('td ',class _=' TD-02 ')hots=soup . find _ all(' TD ',class_='td-03')forrank,tag,hotinzip(ranks,tags,hots): results . append([rank . stringifrankelse ' ',tag.a.string,tag . span . stringiftag . spanelse 9999999,Hot.i.stringi fhot .analysis () returnsorted (result,key=lambdax3360 int (x [2]),Reverse=False)# Reverse order defshow(self): ' ' show data ' ' ' TB=漂亮表()_ sorts _ data=self。_ _ sort()TB . field _ name='排名,热门话题,阅读人数,热点类型'。split(',')for iin sorts _ data : TB . add _ row(I)print(TB)if _ _ name _ _==' _ _ main _ _ ' : wt=Weibotop(). show()

Python用途太多,需要学习的方向也很多,以后就不再以爬行类为重点了。

热门话题榜2019年 微博热门话题排行榜

相关阅读

  • 小贝“引爆”同济校园 警察软组织挫伤
  • 围观微博网友发起的美胸比赛学习爬取微博评论内容
  • 从爬取微博中搜索的热门事件到数据分析处理全过程(一)
  • python 计算机程序设计语言
  • python为什爬去微博热门事件么叫爬虫 基于python的微博数据采集
  • 爬去微博热门事件
  • 网络负面热点事件对大学生社会心态的影响
  • 爬去微博热门事件
  • 热门话题榜2019年 微博热门话题排行榜
  • 版权声明:内容来源于互联网和用户投稿 如有侵权请联系删除

    本文地址:http://0561fc.cn/4219.html

    标签: #爬去微博热门事件