原生爬虫爬取虎牙绝地求生直播热度排行榜
原生爬虫爬取虎牙绝地求生直播热度排行榜
首先需要相应的知识储备:
(1)import 导入方法
(2)面向对象思想
(3)for循环运用
(4)正则表达式
(5)lambda方法的应用
本次原生爬虫爬取信息的相关步骤如下:
一、明确自己想爬取的网页(以虎牙直播绝地求生板块为例)
二、找到想爬取目标的标签
三、模拟HTTP请求:
import re
from urllib import request
class Spider( ):url = 'https://www.huya.com/g/2793'
四、建立入口方法
def go(self):htmls=self.__fetch_content() #获取爬取页面htmlsanchors=self.__analysis(htmls) #解析获取页面htmls,寻找到所需姓名和人气anchors=list(self.__refine(anchors))anchors=self.__sort(anchors)self.__show(anchors)
spider=Spider()
spider.go()
五、转化内容格式
def __fetch_content(self): #定义私密实例方法r=request.urlopen(Spider.url)#类调用类变量htmls=r.read()htmls=str(htmls,encoding='utf-8')return htmls
六、分析所获取的文本
#利用正则表达式匹配需要数据def __analysis(self,htmls):root_html=re.findall(Spider.root_pattern,htmls)anchors=[]for html in root_html:
七、利用正则表达式进行匹配
#利用正则表达式匹配需要数据def __analysis(self,htmls):root_html=re.findall(Spider.root_pattern,htmls)anchors=[]for html in root_html:name=re.findall(Spider.name_pattern,html)#正则表达式返回列表,name列表[('姓名'),('姓名')]number=re.findall(Spider.number_pattern,html)anchor={'name':name,'number':number}anchors.append(anchor)return anchors
八、用lambda表达式进行提取
#利用正则表达式匹配需要数据def __analysis(self,htmls):root_html=re.findall(Spider.root_pattern,htmls)anchors=[]for html in root_html:name=re.findall(Spider.name_pattern,html)#正则表达式返回列表,name列表[('姓名'),('姓名')]number=re.findall(Spider.number_pattern,html)anchor={'name':name,'number':number}anchors.append(anchor)return anchors
完整代码如下:
import re
from urllib import request
class Spider( ):url = 'https://www.huya.com/g/2793'# 正则root_pattern = '<span class="txt">([\s\S]*?)</li>' #结尾</span>并没有包含 人气值,这种情况下需要结尾处再往下找name_pattern = '<i class="nick" title="([\s\S]*?)">([\s\S]*?)</i>' #此时会输出元组,包含两个名字,注意此处的用法number_pattern='<i class="js-num">([\s\S]*?)</i>'#获取要爬取的htmldef __fetch_content(self): #定义私密实例方法r=request.urlopen(Spider.url)#类调用类变量htmls=r.read()htmls=str(htmls,encoding='utf-8')return htmls#利用正则表达式匹配需要数据def __analysis(self,htmls):root_html=re.findall(Spider.root_pattern,htmls)anchors=[]for html in root_html:name=re.findall(Spider.name_pattern,html)#正则表达式返回列表,name列表[('姓名'),('姓名')]number=re.findall(Spider.number_pattern,html)anchor={'name':name,'number':number}anchors.append(anchor)return anchors#过滤重复名字以及将anchor和number里内容以字符串输出def __refine(self,anchors):l=lambda anchor:{'name':anchor['name'][0][0],'number':anchor['number'][0]}r=map(l,anchors) #map格式需要转化成list,才能输出# print(list(r))return r# 排序,按照人气值数值大小def __sort(self,anchors):anchors=sorted(anchors,key=self.__sort_seed,reverse=True)return anchors#将人气值数值取出来,作比较 单个anocherdef __sort_seed(self,anchor):r=re.findall('[\d.]*',anchor['number'])number=float(r[0])if ',' in anchor['number']:number=number*1000+float(r[2])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() #获取爬取页面htmlsanchors=self.__analysis(htmls) #解析获取页面htmls,寻找到所需姓名和人气anchors=list(self.__refine(anchors))anchors=self.__sort(anchors)self.__show(anchors)
spider=Spider()
spider.go()
运行结果:
原生爬虫爬取虎牙绝地求生直播热度排行榜相关推荐
- 使用python爬取虎牙主播直播封面图片(scrapy)
目的:使用Scrapy框架爬取虎牙主播直播封面图片 Scrapy(通过pip 安装Scrapy框架pip install Scrapy)和Python3.x安装教程可自行寻找教程安装,这里默认在Win ...
- python爬虫爬取虎牙数据(简单利用requests库以及Beautifulsoup)
首先打开我们所需要爬取的网站,这里我们挑选的是虎牙直播. 我们今天所爬取的数据就是直播名,直播地址,直播的人,观看数以及直播的类别,如下图所示 第一步关于直播的类别,从第一张图片我们可以看到在右边有直 ...
- python怎么爬虎牙_Python爬虫爬取虎牙数据!谁才是虎牙第一主播!
首先打开我们所需要爬取的网站,这里我们挑选的是虎牙直播. 我们今天所爬取的数据就是直播名,直播地址,直播的人,观看数以及直播的类别,如下图所示 第一步关于直播的类别,从第一张图片我们可以看到在右边有直 ...
- Python爬虫爬取虎牙数据!谁才是虎牙第一主播!
首先打开我们所需要爬取的网站,这里我们挑选的是虎牙直播. 我们今天所爬取的数据就是直播名,直播地址,直播的人,观看数以及直播的类别,如下图所示 第一步关于直播的类别,从第一张图片我们可以看到在右边有直 ...
- python原生爬虫爬取熊猫TV LOL主播人气排行
本文采取phthon原生爬虫,没有采用常用的爬虫框架,比较适合新手练手. 首先进入熊猫TV英雄联盟主页----https://www.panda.tv/cate/lol?pdt=1.24.s1.2.4 ...
- 爬虫爬取斗鱼小姐姐直播间的封面
# -*- coding: utf-8 -*- """ Created on Wed Jun 23 21:58:40 2021@author: xfw "&qu ...
- python熊猫小课成果_python实战之原生爬虫(爬取熊猫主播排行榜)
""" this is a module,多行注释 """ import re from urllib import request # B ...
- 【爬虫实战】python爬取虎牙直播间封面美女图片
Python爬虫爬取虎牙直播间封面美女图片 本文目录 Python爬虫爬取虎牙直播间封面美女图片 写作缘起 上代码 效果展示 思路分析 写作缘起 这篇文章主要是介绍如何使用python爬虫来爬取虎牙直 ...
- 虎牙爬虫爬取直播间热度尝试记录(xpath)
使用pycharm新建一个pyhton项目(python版本3.7) 将untitled修改成自己取得项目名称. Location表示路径. new environment using 表示新建一个项 ...
最新文章
- AI在智能建筑中的应用和发展
- 【Web安全】关于SQL注入简介以及使用SqlMap获取管理员密码的探索
- 关于Spring Boot WebSocket整合以及nginx配置详解
- 票根不符合目标服务_谷歌优化怎么收费?教你选择高性价比的SEO服务!
- 头条号为什么把作者抛弃了?
- Hyper-V的管理与使用之一:添加功能
- 「软件项目管理」软件项目范围计划——需求管理与任务分解
- 系统性风险与个体性风险
- 阿里社招面试如何准备
- win11提示无法安装程序包时该怎么办
- 总结:几个分布式系统架构设计原理
- tplink迷你路由器中继模式_TP-link迷你无线路由器Repeater模式(中继模式)设置教程(转载).docx...
- html颜色混搭的插件,Color by Fardos,网页取色配色插件,查找近似颜色,提供渐变配色...
- python中test是什么意思_Python unittest 之一: 什么是单元测试
- Redis的RDB与AOF持久化机制
- 输入一串字符,统计每个字符数,用字典输出。
- 采购招投标系统-高效管控招采流程-降低采购成本
- 故障转移集群搭建高可用文件共享服务器
- highchart 组织结构图
- 《信息物理融合系统(CPS)设计、建模与仿真——基于 Ptolemy II 平台》——1.10 小结...