(Python学习)爬取虎牙各个直播间的主播名字和人气

获得不同类型游戏直播间的主播名字和人气,只需要修改url的最后面地址,下面加粗黑色字体。

https://www.huya.com/g/**wzry**

python 复制代码
"""
爬取虎牙直播不同游戏类型的主播及人气(仅学习使用)
"""
import re
from urllib import request

class Spider:
    #对应虎牙游戏直播间ip地址
    url = 'https://www.huya.com/g/wzry'

    #正则表达式
    root_pattern = '<span class="avatar fl">([\s\S]*?)</span><span class="num">([\s\S]*?)</span>'
    name_pattern = '<i class="nick" title="([\s\S]*?)">([\s\S]*?)</i>'
    number_pattern = '<i class="js-num">([\s\S]*?)</i>'

    #爬取整个HTML
    def __fetch_content(self):
        r = request.urlopen(Spider.url)

        htmls = r.read()
        htmls = str(htmls, encoding='utf-8')

        return htmls

    #提取html中的信息
    def __analysis(self, htmls):
        htmls = re.findall(Spider.root_pattern, htmls)

        anchors = []
        for x in htmls:
            name = re.findall(Spider.name_pattern, str(x))
            number = re.findall(Spider.number_pattern, str(x))
            anchors.append({'name':name[0], 'number':number})
        return anchors

    #对提取的html信息进行过滤
    def __refine(self, htmls):
        l = lambda x : {'name':x['name'][0].strip(), 'number':x['number'][0].strip()}
        r = map(l, htmls)
        return list(r)

    #排序
    def __sort(self, htmls):
        htmls = sorted(htmls, key=self.__sort_seed, reverse=True)
        return htmls

    #排序的key设定
    def __sort_seed(self, htmls):
        r = re.findall('\d*',htmls['number'])
        number = float(r[0])*10000 + float(r[2])*1000
        return number

    #展示信息
    def __show(self, htmls):
        for rank in range(0, len(htmls)):
            print("rank:"+str(rank)+" name:"+htmls[rank]['name']+"------"+htmls[rank]['number'])

    #main函数
    def go(self):
        htmls = self.__fetch_content()
        htmls = self.__analysis(htmls)
        htmls = self.__refine(htmls)
        htmls = self.__sort(htmls)
        self.__show(htmls)

spider = Spider()
spider.go()
相关推荐
冷雨夜中漫步3 小时前
Python快速入门(6)——for/if/while语句
开发语言·经验分享·笔记·python
郝学胜-神的一滴3 小时前
深入解析Python字典的继承关系:从abc模块看设计之美
网络·数据结构·python·程序人生
百锦再3 小时前
Reactive编程入门:Project Reactor 深度指南
前端·javascript·python·react.js·django·前端框架·reactjs
盐焗西兰花4 小时前
鸿蒙学习实战之路-Reader Kit修改翻页方式字体大小及行间距最佳实践
学习·华为·harmonyos
QiZhang | UESTC5 小时前
学习日记day76
学习
久邦科技5 小时前
20个免费电子书下载网站,实现电子书自由(2025持续更新)
学习
m0_736919105 小时前
C++代码风格检查工具
开发语言·c++·算法
喵手5 小时前
Python爬虫实战:旅游数据采集实战 - 携程&去哪儿酒店机票价格监控完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集结果csv导出·旅游数据采集·携程/去哪儿酒店机票价格监控
2501_944934735 小时前
高职大数据技术专业,CDA和Python认证优先考哪个?
大数据·开发语言·python
Gain_chance5 小时前
34-学习笔记尚硅谷数仓搭建-DWS层最近一日汇总表建表语句汇总
数据仓库·hive·笔记·学习·datagrip