温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python爬虫怎样解决快手粉丝数及关注数等字体加密问题

发布时间:2021-12-06 16:18:04 来源:亿速云 阅读:256 作者:柒染 栏目:大数据

这篇文章将为大家详细讲解有关python爬虫怎样解决快手粉丝数及关注数等字体加密问题,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

想拿一下粉丝数 关注数 描述等

发现字体是加密的 elements是这样的

python爬虫怎样解决快手粉丝数及关注数等字体加密问题cdn.nlark.com/yuque/0/2020/png/97322/1607128435174-179522d1-d962-494a-855c-5cb31f67d96b.png">

源代码里是这样的

python爬虫怎样解决快手粉丝数及关注数等字体加密问题

找了找js 原来是用



这些玩意 去

python爬虫怎样解决快手粉丝数及关注数等字体加密问题

这个ttf里一一对应 然后用 js + css画出来的

找到问题所在,就fuck掉它

把js扣出来?用execjs去执行?太LOW了

既然做python 那就用python去重写

首先用re去拿这个ttf的url (因为每次都变)

python爬虫怎样解决快手粉丝数及关注数等字体加密问题

先给这玩意下载下来 把这个ttf文件扔fonteditor里 然后去

http://fontstore.baidu.com/static/editor/index.html

瞅瞅

python爬虫怎样解决快手粉丝数及关注数等字体加密问题

这个时候就发现了东西

python爬虫怎样解决快手粉丝数及关注数等字体加密问题

python爬虫怎样解决快手粉丝数及关注数等字体加密问题

不就是这玩意吗,找到对应关系了 那就ok了

TTF文件没办法直接搞啊 ?怎么办

保存成xml !

python爬虫怎样解决快手粉丝数及关注数等字体加密问题

然后就成了这玩意 ok对应关系也有了 python也能搞了

去写一下 整逻辑就是

先去拿 ttf文件 url 请求url 保存 然后转xml

然后 拿加密前的特殊字符

# 就是这玩意

然后去切割 对应 OK完事

对应关系的代码

根据看到的 id : 0啥也不说

从1~15 就是这些东西

python爬虫怎样解决快手粉丝数及关注数等字体加密问题

上代码

# 对应关系 
def kuaishou_un_font(soup, font_size):    # soup 就是传的 ttf转码成xml的    font_dict = {}    for font_m in soup.glyphorder.children:        if font_m != '\n' and 'humans' not in font_m:            id = font_m.get('id')            name = font_m.get('name')            if id != '0' and int(id) < 11:                font_dict[name] = str(int(id)-1)            elif id == '11':                font_dict[name] = '.'            elif id == '12':                font_dict[name] = 'w'            elif id == '13':                font_dict[name] = 'k'            elif id == '14':                font_dict[name] = 'm'            elif id == '15':                font_dict[name] = '+'    size_dict = {}    for font_k in soup.cmap_format_4.children:        if 'map' in str(font_k):            code = font_k.get('code')[-4:]            name = font_k.get('name')            size_dict[code] = name    return font_dict[size_dict[font_size]]

然后是拿TTF 文件然后转成xml

# TTF转XML font = TTFont('font_size.ttf')  font.saveXML('font_size.xml')

和split后list去一一解密

# font_url 自己去动态拿 每次都变动font_url = ''font_res = requests.get(font_url)  with open('font_size.ttf', 'wb+') as f:      f.write(font_res.content)  font = TTFont('font_size.ttf')  font.saveXML('font_size.xml')  soup = BeautifulSoup(open('font_size.xml'), 'lxml')  try:      fan = user_data_json['obfuseData']['fan'][40:-8].split(';&#x')      fans = ''      for f in fan:          fans += kuaishou_un_font(soup, f)  except:      fans = ''

最后

python爬虫怎样解决快手粉丝数及关注数等字体加密问题

OK~ 解码完成

关于python爬虫怎样解决快手粉丝数及关注数等字体加密问题就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI