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

爬取熊猫直播主播人气排行榜

最近复习基础,复习到了类,想着用类做一个小的爬虫。看看熊猫tv上王者荣耀主播人气排行。

其实这个小的爬虫没有什么难度,主要是练习一下类的相关用法,为下面的面向对象编程打下基础。还有规范编程吧

既然是爬虫免不了三部曲:请求网页,解析网页,数据处理,让我们一步一步来:

请求网页

既然学习类,就用类完成这个小的爬虫。这里我定义了一个私有方法__fetch_content(),可能有的读者还不了解私有变量,这里的意思就是这个私有方法仅仅在类的内部使用,实例化类后是不能被调用的,这样做的目的就是保证了代码的安全性。

fromurllibimportrequest

importrequests,re

classSpider():

url ='https://www.panda.tv/cate/kingglory'

root_pattern ='

([\s\S]*?)

'

name_pattern ='([\s\S]*?)'

number_pattern ='([\s\S]*?)'

#设置一个私有方法

def__fetch_content(self):

'''

获取网页内容

'''

r = request.urlopen(Spider.url)

htmls = r.read()

htmls =str(htmls,encoding='utf-8')

returnhtmls

这里看到请求网页没有加请求头,也没有传入参数,比之前的代码简单多了。这里主要是规范写法和练习类。

解析网页

这里看到,用的是正则表达式来写的,正则表达式是一个很好用的工具,在很多语言中都有用到,建议掌握。

数据处理

这里用了函数sorted()来排序,根据主播人气值排序,用到了字符转换,以及如何解决「万」。重在思路。

最后把函数归一调用:

然后实例化类执行爬虫小程序。

总结

在面向对象编程中,代码的逻辑性很重要,刚开始学习的时候会有一种束手束脚的感觉,但慢慢理清思路,还是很方便的。我们要带着枷锁,跳出微妙的舞姿。

debag是一个很重要的技能,相比较print来说,不会显的很乱,有很强的逻辑性。

要知道爬虫最难的不是解析数据和分析数据,最难的永远是怎么应对网页的反爬。

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券