python某鱼主播粉丝的爬取

本文详细介绍了如何使用Python爬取斗鱼直播间的粉丝数。首先,通过Chrome控制台定位粉丝数据,发现数据通过字体库反爬。接着,找到并解析字体库,获取粉丝数量的映射关系。在调试过程中,需要动态获取字体库链接,并解决长链接的封IP问题。最后,文章提供了解析字体库和处理长链接的代码思路。
摘要由CSDN通过智能技术生成

找到粉丝数据是如何传过来的

随机找一个主播的直播间打开,本人使用的是chrome控制台,定位粉丝html的标签位置。但这里定位后会发现页面展示的数据和html中展示的数据是不对的。这个时候能想到的是该数据应该是做了字体反爬。

在这里插入图片描述
再细心点会发现它标签中用到的属性style,后面跟上的字符传应该是调用对应字体库的链接中的某个参数。
在这里插入图片描述

找到调用的字体库

把第一步上字体库的url参数通过全局搜索,会发现它存在于一个长链接中,再细看长链接,有两个参数cfdc和ci这两个参数,其中cfdc对应的数据是粉丝数量需要经过字体库的映射一下关系,则是对应才是正确的粉丝数量,ci这个参数是对应的字体库的链接的参数
在这里插入图片描述
但是多刷新几次,会发现每次调用的字体库是不一样的,所以这里不能写死。要根据长链接返回的字体库参数拼接链接。才能获取到每次调用的字体库的链接。

解析字体库,找到对应关系

把每次获取到的字体库链接直接通过requests下载下来,保存为woff格式。然后转成lxml格式。打开lxml,很清楚的能看见里面对应的关系。然后通过python解析lxml对数据进行解析,获取到对应的映射关系即可。
附上解析字体的代码:

import requests
from fontTools.ttLib import TTFont
from xml.dom.minidom import parse

headers = {
   
    'user_agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36',
}

def get_number_dict(keyword):
    number_dict = {
   
        'zero': 0,
        'seven': 7,
        'three': 3,
        'four': 4,
        'eight': 8,
        'six': 6,
        'five': 5,
        'nine': 9,
        'one': 1,
        'two': 2,
    }
    dom = parse("lxml路径")
    # dom = parse("/Users/zhulang/Desktop/nanodata_crawling/apps/douyu/woff/%s.xml" % str(keyword))
    data = dom.documentElement
    stus = data.getElementsByTagName('GlyphID')
    font_dict = {
   }
    corr_number = []
    error_number = []
    for stu in stus:
        corr_number.append(stu.getAttribute('id')
  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值