ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

黄页88 -- 字体解密

2022-06-01 10:03:10  阅读:156  来源: 互联网

标签:map font -- content re 88 str import 黄页


# https://kekee000.github.io/fonteditor/

import re
import requests
from io import BytesIO
import base64
from fontTools.ttLib import TTFont
from lxml import etree


NUMBER_MAP = {
    'zero': '0',
    'one': '1',
    'two': '2',
    'three': '3',
    'four': '4',
    'five': '5',
    'six': '6',
    'seven': '7',
    'eight': '8',
    'nine': '9',
    'asterisk': "*",
    'plus': '+',
    'hyphen': '-',
    'slash': '/',
    'numbersign': '#',
}


def handle_ttfont(data):
    font = TTFont(BytesIO(base64.b64decode(data)))
    font.save('font.ttf')
    font.saveXML('font.xml')

    font_map = {}

    best_cmap = font.getBestCmap()
    for k, v in best_cmap.items():
        k = str(hex(k)).replace('0x', '&#x') + ';'
        font_map[k] = NUMBER_MAP[v]

    return font_map


if __name__ == '__main__':
    url = 'http://b2b.huangye88.com/qiye10000/company_contact.html'
    headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36'}

    r = requests.get(url=url, headers=headers)
    with open('./font.html', 'w') as fl:
        fl.write(r.text)

    content = r.text
    font_re = re.search(r';base64,(.*?)"\)', content)
    if font_re:
        font_str = font_re.group(1)
        font_map = handle_ttfont(font_str)
        print(font_map)

        for k, v in font_map.items():
            content = content.replace(k, v)

        html = etree.HTML(content, parser=etree.HTMLParser(encoding='utf-8'))
        phone_str = html.xpath('//li[contains(label, "手机:")]/span[@class="secret"]/text()')[0]
        print(phone_str)

标签:map,font,--,content,re,88,str,import,黄页
来源: https://www.cnblogs.com/wangshx666/p/16333262.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有