V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
Mnzz0785
V2EX  ›  Python

跪问,关于字体反爬的一个问题。

  •  1
     
  •   Mnzz0785 · 2020-06-23 21:30:47 +08:00 · 2661 次点击
    这是一个创建于 1615 天前的主题,其中的信息可能已经有所发展或是发生改变。
    语言:python
    现在已经使用 fonttools 将 ttf 文件保存成了 xml 。字体的对应字典也已经提取完成。

    经过 request 包抓取,lxml.etree xpath 提取后有如下信息:
    ['\ue700', '满意', '\ue684', '就是它的外', '\ue9c2', '设计', '\ue71f', '的非常的漂', '\ueeae', ',最抢眼的地方我觉得是', '\uef66', '头的', '\ue020', '型,', '\ue75e', '常凌厉动感。大灯', '\uee5f', '是非常的好', '\ue70b', '。内', '\ue970', '方面', '\ue75e', '常的', '\uee0d', '错']
    ['\ue700', '不满意的就', '\ue62f', '它的音质方', '\ue762', '。听起来并', '\uee0d', '是那么的舒', '\ue002', ',还有座椅方面我', '\ue11f', '觉并', '\uee0d', '是那么的舒服行驶', '\ue684', '时间长了坐', '\ue728', '上面会感觉', '\ue170', '酸背痛']

    因为字体字典中键值对的属性是 16 进制:unicode 编码

    现在我遍历这个 list 里面的\uxxx 无法进行操作,打印为乱码,type 之后发现是 lxml.etree._ElementUnicodeResult.

    我需要对\uxxx 进行替换或者切片变为字体字典中对应的键来进行替换。但是试了很多种办法都没用。

    请问是我的思路错了还是技术太差,希望有大佬能指点一下。查阅了很多资料,也没有找到答案。

    如有大佬愿意有偿教学也可私
    3 条回复    2020-06-23 23:27:43 +08:00
    favourstreet
        1
    favourstreet  
       2020-06-23 21:58:40 +08:00   ❤️ 1
    Naïve !当然是思路错了而且技术太差两个都有!我猜楼主完全没有明白如何应对这种字体映射。提示:你需要的不是 Unicode→GlyphID 的映射,而是 Unicode→Unicode 的映射
    aeshfawre
        2
    aeshfawre  
       2020-06-23 23:22:04 +08:00
    就是你说的\u 替换, 我这边也替换过,
    no1xsyzy
        3
    no1xsyzy  
       2020-06-23 23:27:43 +08:00
    我估计你 len 一下就知道什么情况了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   920 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:38 · PVG 06:38 · LAX 14:38 · JFK 17:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.