原生爬虫爬取虎牙绝地求生直播热度排行榜

首先需要相应的知识储备:
(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()

运行结果:

原生爬虫爬取虎牙绝地求生直播热度排行榜相关推荐

  1. 使用python爬取虎牙主播直播封面图片(scrapy)

    目的:使用Scrapy框架爬取虎牙主播直播封面图片 Scrapy(通过pip 安装Scrapy框架pip install Scrapy)和Python3.x安装教程可自行寻找教程安装,这里默认在Win ...

  2. python爬虫爬取虎牙数据(简单利用requests库以及Beautifulsoup)

    首先打开我们所需要爬取的网站,这里我们挑选的是虎牙直播. 我们今天所爬取的数据就是直播名,直播地址,直播的人,观看数以及直播的类别,如下图所示 第一步关于直播的类别,从第一张图片我们可以看到在右边有直 ...

  3. python怎么爬虎牙_Python爬虫爬取虎牙数据!谁才是虎牙第一主播!

    首先打开我们所需要爬取的网站,这里我们挑选的是虎牙直播. 我们今天所爬取的数据就是直播名,直播地址,直播的人,观看数以及直播的类别,如下图所示 第一步关于直播的类别,从第一张图片我们可以看到在右边有直 ...

  4. Python爬虫爬取虎牙数据!谁才是虎牙第一主播!

    首先打开我们所需要爬取的网站,这里我们挑选的是虎牙直播. 我们今天所爬取的数据就是直播名,直播地址,直播的人,观看数以及直播的类别,如下图所示 第一步关于直播的类别,从第一张图片我们可以看到在右边有直 ...

  5. python原生爬虫爬取熊猫TV LOL主播人气排行

    本文采取phthon原生爬虫,没有采用常用的爬虫框架,比较适合新手练手. 首先进入熊猫TV英雄联盟主页----https://www.panda.tv/cate/lol?pdt=1.24.s1.2.4 ...

  6. 爬虫爬取斗鱼小姐姐直播间的封面

    # -*- coding: utf-8 -*- """ Created on Wed Jun 23 21:58:40 2021@author: xfw "&qu ...

  7. python熊猫小课成果_python实战之原生爬虫(爬取熊猫主播排行榜)

    """ this is a module,多行注释 """ import re from urllib import request # B ...

  8. 【爬虫实战】python爬取虎牙直播间封面美女图片

    Python爬虫爬取虎牙直播间封面美女图片 本文目录 Python爬虫爬取虎牙直播间封面美女图片 写作缘起 上代码 效果展示 思路分析 写作缘起 这篇文章主要是介绍如何使用python爬虫来爬取虎牙直 ...

  9. 虎牙爬虫爬取直播间热度尝试记录(xpath)

    使用pycharm新建一个pyhton项目(python版本3.7) 将untitled修改成自己取得项目名称. Location表示路径. new environment using 表示新建一个项 ...

最新文章

  1. AI在智能建筑中的应用和发展
  2. 【Web安全】关于SQL注入简介以及使用SqlMap获取管理员密码的探索
  3. 关于Spring Boot WebSocket整合以及nginx配置详解
  4. 票根不符合目标服务_谷歌优化怎么收费?教你选择高性价比的SEO服务!
  5. 头条号为什么把作者抛弃了?
  6. Hyper-V的管理与使用之一:添加功能
  7. 「软件项目管理」软件项目范围计划——需求管理与任务分解
  8. 系统性风险与个体性风险
  9. 阿里社招面试如何准备
  10. win11提示无法安装程序包时该怎么办
  11. 总结:几个分布式系统架构设计原理
  12. tplink迷你路由器中继模式_TP-link迷你无线路由器Repeater模式(中继模式)设置教程(转载).docx...
  13. html颜色混搭的插件,Color by Fardos,网页取色配色插件,查找近似颜色,提供渐变配色...
  14. python中test是什么意思_Python unittest 之一: 什么是单元测试
  15. Redis的RDB与AOF持久化机制
  16. 输入一串字符,统计每个字符数,用字典输出。
  17. 采购招投标系统-高效管控招采流程-降低采购成本
  18. 故障转移集群搭建高可用文件共享服务器
  19. highchart 组织结构图
  20. 《信息物理融合系统(CPS)设计、建模与仿真——基于 Ptolemy II 平台》——1.10 小结...

热门文章

  1. 外贸网站如何全球加速?用全球加速CDN比较好
  2. 【致远FAQ】Guest 账号同时多人登陆导致OA卡顿
  3. java实现:啤酒2元一瓶,10个盖子可以换一瓶啤酒,4个瓶子可以换一瓶啤酒,请问x元最多可换多少瓶啤酒
  4. html5抓鱼游戏,小班捉小鱼游戏教案
  5. Android P系统设置之默认打开定位开关(默认使用位置服务)
  6. 深析 | 手机摄像产业趋势—多摄/TOF/高倍变焦或成行业新风口
  7. 【Eclipse】xml文件
  8. 三合一剪弦器怎么用_吉他换弦时多余的弦用什么工具剪掉?
  9. Matplotlib绘制折线图和散点图
  10. 智能制造并非只是自动化