python抓取斗鱼的主播及热度
Python抓取斗鱼主播及热度
刚接触python,想用python爬取下斗鱼的主播及其热度,下面是一个小demo
具体代码如下:
from urllib import request
from io import BytesIO
import re
import gzip
import ssl
ssl._create_default_https_context = ssl._create_unverified_contextclass Spider():url = 'https://www.douyu.com/g_LOL'# [\s\S]字符*0次或多次 ?非贪婪 ([\s\S]*?)root_pattern = '<div class="DyListCover-info">(.*?)</div>' # 匹配所有内容,非贪婪name_pattern = '<use xlink:href="#icon-user_c95acf8"></use></svg>([\s\S]*?)</h2>'number_pattern = '<use xlink:href="#icon-hot_8a57f0b"></use></svg>(.*?)</span>'def __fetch_content(self):r = request.urlopen(Spider.url)htmls = r.read() # 返回bytebuff = BytesIO(htmls)f = gzip.GzipFile(fileobj=buff)htmls = f.read().decode('utf-8')return htmlsdef __analysis(self, htmls):root_html = re.findall(Spider.root_pattern, htmls)# print(root_html) findall返回list# print(type(root_html)) list# print(type(root_html[1])) strroot_html1 = []root_html1 = root_html[1::2] # 取偶数项,切片操作 (数据特殊,必须是第二个孩子)# print(root_html1[1])anchors = []for html in root_html1:name = re.findall(Spider.name_pattern, html) # listnumber = re.findall(Spider.number_pattern, html) # listanchor = {'name': name, 'number': number}anchors.append(anchor)return anchorsdef __refine(self, anchors): # 数据精炼def l(anchor): return { # 返回对象'name': anchor['name'][0].strip(), # strip去空格'number': anchor['number'][0]}return map(l, anchors) # 返回mapdef __sort(self, anchors):anchors = sorted(anchors, key=self.__sort_sead, reverse=True)return anchorsdef __sort_sead(self, anchor): # 配置sort的第二个参数r = re.findall('\d*', anchor['number'])number = float(r[0]) # r[0]匹配的是开头数字if '万' in anchor['number']:number *= 10000return numberdef __show(self, anchors):for rank in range(0, len(anchors)):print('Rank '+str(rank+1)+':' +anchors[rank]['name']+' '+anchors[rank]['number'])def go(self): # 入口文件htmls = self.__fetch_content()anchors = self.__analysis(htmls)anchors = list(self.__refine(anchors))anchors = self.__sort(anchors)self.__show(anchors)spider = Spider()
spider.go()
实现效果如下:
这是看一个网课视频,跟着老师敲下来的,只是老师用的是熊猫直播,然鹅,当我学的时候,它已经不在了,
python抓取斗鱼的主播及热度相关推荐
- 用python抓取斗鱼网的弹幕
代码实现: from selenium import webdriver import time# amount=要爬多少数量 def douYuDanMu(amount):#手动添加路径path = ...
- python 模拟浏览器selenium_Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息示例...
本文实例讲述了Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息.分享给大家供大家参考,具体如下: import time from multiprocessing import Poo ...
- python采集直播间数据_Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息示例...
本文实例讲述了Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息.分享给大家供大家参考,具体如下: import time from multiprocessing import Poo ...
- python抓取直播源 并更新_Python爬虫实例(二)使用selenium抓取斗鱼直播平台数据...
程序说明:抓取斗鱼直播平台的直播房间号及其观众人数,最后统计出某一时刻的总直播人数和总观众人数. 过程分析: 进入平台首页,来到页面底部点击下一页,发现url地址没有发生变化,这样的话再使用urlli ...
- PYTHON爬取斗鱼英雄联盟所有在玩adc的主播房间信息
Python爬取斗鱼英雄联盟所有玩adc的主播房间信息并用redis存储数据 最近想要用巩固下json数据的提取以及数据的存储,于是选了斗鱼作为研究对象.. 下面就是所有要爬取的adc,当然有个别ad ...
- 爬取斗鱼LOL主播人气数据,并显示排行榜 [网络爬虫] [应用案例][请求头][模块]
您的"关注"和"点赞",是信任,是认可,是支持,是动力- 如意见相佐,可留言. 本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新. 文章目录 1 爬 ...
- python爬取斗鱼当前英雄联盟主播排名
python爬取斗鱼当前英雄联盟主播排名 代码 # 目的:爬取斗鱼英雄联盟当前主播的排名 # 找到对应网页 # 分析排名和名称相对的位置# 模拟HTTP请求,获取HTML数据 # 用正则表达式获取对应 ...
- selenium抓取斗鱼直播平台数据
https://www.cnblogs.com/xinyangsdut/p/7617691.html 程序说明: 抓取斗鱼直播平台的直播房间号及其观众人数,最后统计出某一时刻的总直播人数和总观众人数. ...
- 用python抓取智联招聘信息并存入excel
用python抓取智联招聘信息并存入excel tags:python 智联招聘导出excel 引言:前一阵子是人们俗称的金三银四,跳槽的小朋友很多,我觉得每个人都应该给自己做一下规划,根据自己的进步 ...
最新文章
- python单词词频字典_python利用多种方式来统计词频(单词个数)
- 平均符号熵的计算公式_交叉熵(Cross Entropy)从原理到代码解读
- 中国航发牵手阿里云共同打造:航空新引擎
- 计算机用的机械硬盘的工作原理,为啥一震就坏?机械硬盘的构造原理是什么?...
- python 的 购物小程序
- kettle插入更新流程
- java内存:堆、栈、常量池、方法区
- File Io 删除类中的引用
- 2款在线FM音乐聚合播放PHP源码 带搜索
- Spring+CXF的WebServices简单示例
- PHPOffice下PHPWord生成Word2007(docx)使用方法
- 线段树(Segment Tree)
- 《JavaScript开发框架权威指南》——2.4 处理任务
- Mac新手教程:Adobe Illustrator 如何创建文件
- 什么?华为方舟编译器竟然这么牛逼~
- 继续惨...555555555
- SAP跨公司销售经典场景
- 一个程序员的十年程序人生感悟
- 根据身份证号(18/15)计算年龄、出生日期、性别
- 基于微信小程序的个人管理软件
热门文章
- 汇编 nasm 打字板
- Java中的getClass方法
- 读书笔记:《游戏感:游戏操控感和体验设计指南》
- Notepad++中格式化html代码的插件tidy2的下载与安装
- img-polaroid_宝丽来堆栈到网格简介动画
- 大胖球:微软之走向死亡
- 信号完整性(SI)电源完整性(PI)学习笔记(八)传输线的物理基础(一)
- GreatSQL MGR FAQ
- GitHub Desktop 出现“please upgrade your plan to create a new private repository”的解决办法
- 京东自媒体平台京东号正式上线!