由于一直闲赋在家,很烦躁。人生路差点走歪,所幸还是回来了。

一、环境

平台:windows10 解释器:vscode

二、网页分析

这里主要有三个地方:
(1)周榜是json动态生成的

"https://www.huya.com/cache5min.php?m=WeekRank&do=getItemsByPid&pid=18405890
只有pid这个数据是不一样的当然也是能在网页源码中发现

这个是贵宾榜单 也找到了,不过没有拿
https://www.huya.com/cache1min.php?m=VipBarList&tid=184005893&sid=184005893

这是粉丝榜单,也没有取
https://www.huya.com/cache.php?m=Fans&do=getFansScoreUpList&profileUid=184005893

这是工会信息也没有取
https://chgate.huya.com/proxy/index?service=thrift_sign&iface=getSignChannelInfo&callback=getSignChannelInfo&data=184005893

(2) 主播直播最近动态
"https://liveapi.huya.com/moment/getMomentListByUidForWeb?&pid="184005893
直接给网址所有的都只有pid不一样

三、代码

import scrapy
from copy import deepcopy
import re
import jsonclass HySpider(scrapy.Spider):name = 'hy'allowed_domains = ['huya.com']start_urls = ['http://huya.com/1']def parse(self, response):print("111"*20)a_list=response.xpath('//div[@class="m-bd"]//a')for a in a_list:item={}item["href"]=a.xpath('./@href').extract_first()item["b_cate"]=a.xpath('./span/text()').extract_first()yield scrapy.Request(item["href"],callback=self.cate_data_parse,meta={"item":deepcopy(item)})def cate_data_parse(self,response):item=response.meta["item"]li_list=response.xpath('//ul/li[@class="game-live-item"]')for li in li_list:item["name"]=li.xpath('./span/span[1]/img/@alt').extract_first()item["title"]=li.xpath('./a[2]/@title').extract_first()item["Popularity"]=li.xpath("./span/span/i[2]/text()").extract_first()item["pid"]=li.xpath("./@data-lp").extract_first()item['img']=li.xpath("./span/span/img/@src").extract_first()item["room_href"]=li.xpath("./a[2]/@href").extract_first()yield scrapy.Request(item['room_href'],callback=self.room_data,meta={"item":deepcopy(item)})def room_data(self,response):item=response.meta["item"]item["room_num"]=response.xpath('//div/span[@class="host-rid"]/em/text()').extract_first()weekend_href="https://www.huya.com/cache5min.php?m=WeekRank&do=getItemsByPid&pid="+item["pid"]yield scrapy.Request(weekend_href,callback=self.weekend_data,meta={"item":deepcopy(item)})def weekend_data(self,response):item=response.meta["item"]#https://www.huya.com/cache5min.php?m=WeekRank&do=getItemsByPid&pid=78849323#https://www.huya.com/cache5min.php?m=WeekRank&do=getItemsByPid&pid=17363578html=response.textname= re.findall('''"sNickName":(.*?),"iScore":(.*?)"''',html)item["week_income"]=namedynamic_href="https://liveapi.huya.com/moment/getMomentListByUidForWeb?&pid="+item["pid"]yield scrapy.Request(dynamic_href,callback=self.dynamic,meta={"item":deepcopy(item)})def dynamic(self,response):item=response.meta["item"]html=response.textvideo= re.findall('''"title":"(.*?)"''',html)item["dynamic"]=videoprint(item)yield item

四、运行效果图

五、不足

周贡献榜单的数据在原网页中是unicode编码的、使用re匹配下的数据无法进行解码,就很烦。暂时待解决

数据库以及redis去重很简单也就没有做

爬虫(七):虎牙直播爬虫相关推荐

  1. Python爬虫大作业(仿虎牙直播客户端)

    已购用户必看 2022-11-27更新 在[四.作业实现成果]下,新增了[代码更新],修复了一些原因引起的bug,该bug曾导致部分直播间的标题异常丢失. 2022-12-10更新 在[四.作业实现成 ...

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

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

  3. 虎牙直播分类图片爬虫

    今天看到求职有家公司写到需要爬取各大直播平台信息,我就先小试牛刀一下,爬取了虎牙直播的这四个分类图片,应该已经是全站的分类了,并且按游戏名命名,存入在不同的文件夹.可能代码需要一些优化,但是我目前只能 ...

  4. 爬虫技术python爬到女性语音_python爬虫看看虎牙女主播中谁最“顶”步骤详解

    网页链接:https://www.huya.com/g/4079 这里的主要步骤其实还是和我们之前分析的一样,如下图所示: 这里再简单带大家看一下就行,重点是我们的第二部分. 既然网页结构我们已经分析 ...

  5. python提取图片文字视频教学_Python学习第七天之爬虫的学习与使用(爬取文字、图片、 视频)...

    一.爬虫记得基本方法 1.1 爬虫概述 ​网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使 ...

  6. python爬虫,虎牙房间爬取(selenium)

    coding=utf-8 """ author:lei function: 虎牙直播爬取 """ import time from sele ...

  7. python爬取文字和图片_Python学习第七天之爬虫的学习与使用(爬取文字、图片、 视频)...

    [toc] 一.爬虫记得基本方法 1.1 爬虫概述 ​ 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本. ...

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

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

  9. 虎牙直播张波:掘金Nginx日志

    大家好!我是来自虎牙直播技术保障部的张波.今天主要会从数据挖掘层面跟大家探讨一下 Nginx 的价值.OpenResty 在虎牙的应用场景主要 WAF 和流控等方面,我今天主要分享的是" N ...

最新文章

  1. 终于!朋友圈可以删除别人评论了……
  2. 为什么DOM操作很慢
  3. jstat_使用jstat报告自定义JVM指标集
  4. java中多态父类的成员变量和方法调用问题
  5. 福州大学软件1715|W班-助教卞倩虹个人简介
  6. 前端学习(2180):vue-router全局导航守卫
  7. django url 生效_Django基础知识
  8. scp和sftp常用操作
  9. 更新Windows ActiveX,Ios
  10. github连接出现Bad file number问题
  11. kubeadm安装k8s测试环境
  12. Excel数据分析的代码(包括列表的操作)
  13. .axf文件_MDK 的编译过程及文件类型全解(一)
  14. 7-5 华氏度转摄氏度(四舍五入) (5分) java pta
  15. input中加入图标实现搜索框
  16. java 导出word文件,支持导出表格和图片
  17. 将已有的文件夹添加到git
  18. ZOJ 1788 Quad Trees (四分树经典)
  19. IC-二进制, 自然数, 有符号数
  20. 介绍分享几款免费的在线Web文件管理器

热门文章

  1. 自定义视频播放器与慢放滚轮
  2. opencv设置摄像头分辨率不生效
  3. 电脑开机显示我的计算机无法启动,“双击我的电脑无法打开,出现打开方式的解决方案”的解决方案...
  4. PostMan工具的基本使用
  5. 项目实训--物流管理系统之调度中心
  6. php 中文域名,如何注册中文域名?
  7. 数据结构详解:图(Graph)
  8. 一段c语言的自加程序输出xyz,c语言程序设计基础教程_习题解答2012.doc
  9. 5. PostCSS
  10. vue中使用file-saver插件导出文件(表格,图片,word文档等)