python某鱼主播粉丝的爬取

某鱼主播粉丝的爬取
找到粉丝数据是如何传过来的
随机找一个主播的直播间打开,本人使用的是控制台,定位粉丝html的标签位置 。但这里定位后会发现页面展示的数据和html中展示的数据是不对的 。这个时候能想到的是该数据应该是做了字体反爬 。
再细心点会发现它标签中用到的属性style,后面跟上的字符传应该是调用对应字体库的链接中的某个参数 。
找到调用的字体库
把第一步上字体库的url参数通过全局搜索,会发现它存在于一个长链接中,再细看长链接,有两个参数cfdc和ci这两个参数,其中cfdc对应的数据是粉丝数量需要经过字体库的映射一下关系,则是对应才是正确的粉丝数量,ci这个参数是对应的字体库的链接的参数
但是多刷新几次,会发现每次调用的字体库是不一样的,所以这里不能写死 。要根据长链接返回的字体库参数拼接链接 。才能获取到每次调用的字体库的链接 。
解析字体库,找到对应关系
把每次获取到的字体库链接直接通过下载下来,保存为woff格式 。然后转成lxml格式 。打开lxml,很清楚的能看见里面对应的关系 。然后通过解析lxml对数据进行解析,获取到对应的映射关系即可 。
附上解析字体的代码:
【python某鱼主播粉丝的爬取】import requestsfrom fontTools.ttLib import TTFontfrom xml.dom.minidom import parseheaders = {'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 = http://www.kingceram.com/post/dom.documentElementstus = data.getElementsByTagName('GlyphID')font_dict = {}corr_number = [