可视化软件

woff文件一般使用fontcreator查看
链接:
https://dqunying2.jb51.net/201802/tools/fontcreator_jb51.rar .

xml文件结构关系

需要先将 woff 文件转化为 xml 格式

from fontTools.ttLib import TTFont
import xmltodict
font = TTFont('7.woff')
# 保存为xml文件
font.saveXML('7.xml')
# 读取xml文件内容
with open('7.xml', 'r') as f:
    xmldict = xmltodict.parse(f.read())
for i in xmldict['ttFont']['glyf']['TTGlyph'][1:]:
	# 此处i为OrderedDict 需要转换才能进行下一步取值
	# ww = json.loads(json.dumps(i))
	# for i in ww:
	#	 print(i)
	print(i)

xml的字体文件格式一览,其中主要看GlyphOrder,cmap,glyf

在这里插入图片描述
其中GlyphOrder可映射文件id从fontcreator软件中获取该字,如下unie842为6,unie269为9,以此类推

在这里插入图片描述
cmap则表明了映射关系,此处多半是网页呈现的代码

在这里插入图片描述
glyf是对字体的图像描写笔画显示

 <TTGlyph name="unia863" xMin="0" yMin="-164" xMax="996" yMax="804">
      <contour>
        #点 x.y on 0表示为弧形区域 1表示矩形
        <pt x="22" y="-72" on="1"/>
        <pt x="96" y="59" on="0"/>
        <pt x="102" y="322" on="1"/>

静态,动态woff文件处理方法

对于静态文件只需要下载到本地,获取字符集的列表顺序,再根据xml中的映射关系即可解决。

对于动态文件有2种情况一种是uniname变化,字符集不变,这种情况需要每次请求都下载一次woff文件。

第二种情况是2者都会变化,字符集顺序也会变化,这种情况博主的处理方式为,对`glyf`中的字符笔划x,y的值,on的排列等数据进行操作,拿到该字符唯一的特征,再去映射文件字体即可该方法适用于少量的字体反爬。

好久没写爬虫了,最近发现很多网站都出现了woff字体反爬。百度找了一下,发现都要钱,只好默默说一声fuck 那么,只好自己破解了。好的,那么开始。 如果你在抓去某个网站时候,抓下来的文字读不通,打开network你发现如此: 而网页上的文字是: 那么,就是加了woff字体反爬,这时候不要慌,慢慢来。 首先找到你要抓的网页,打开network,找到 找到woff字体文件,然后转换成xml文件,转换代码是` #encoding: utf-8 from fontTools.ttLib import TTFo
简单描述一下这种手段,html源码的数字跟页面展示的数字是不一致的!当时就一脸黑人问号,嗯??? 经过分析,当前这种字体反爬机制是:通过获取指定链接的woff字体文件,然后根据html源码的数字 去woff字体文件里面查找真正的数字,讲到底就是一个映射关系/查找字典。如html源码是123,去w...
Java部署woff文件配置 在Java应用程序中,有时候需要部署woff文件(Web开放字体格式)来支持网站的字体显示。在部署这些文件时,需要进行一些配置以确保文件能够正确加载和使用。本文将介绍如何在Java应用程序中配置woff文件的部署。 woff文件的作用 woff文件是一种用于网页字体的文件格式,它可以提供...
项目需求通过Excel把数据导入数据库,一开始用的jxl,简单完成。后来发下远程下不能导入,给点路径找不到。因为服务器上面没有你路径所说的文件。更改程序:先把Excel上传到服务器,在服务器上读取Excel把数据导入数据库。 上传用到的jar:commons-fileupload-1.2.1.jar Excel上传: DiskFileItemFactory fact
易车网链接:http://dianping.bitauto.com/sid_2384/koubei/2557927641943680 该页面评价加载了WOFF字体,在审核元素中查看,发现个别汉字无法正常显示,由此可推测该WOFF文件中,只有少数常用汉字被单独编码了。 审核元素中无法正常显示的字,在源码中显示为“”格式,该格式为unicode编码。 字体文件下载地址:htt... 然而网页上显示的是数字’9.5’,这其实是一种反扒机制–字体反爬字体反爬,就是网站将一些关键字替换为网站自己的字体,这样在网页上字体会正常显示,但是当爬取下来的时候,经过字体加密的字符都是乱码的,无法查看。 应对这种反... 简单描述一下这种手段,html源码的数字跟页面展示的数字是不一致的!当时就一脸黑人问号,嗯??? 经过分析,当前这种字体反爬机制是:通过获取指定链接的woff字体文件,然后根据html源码的数字 去woff字体文件里面查找真正的数字,讲到底就是一个映射关系/查找字典。如html源码是123,去w... 这是一个基本的Web应用程序,允许用户查看woff或woff2 Webfont的字形。 用户在其硬盘驱动器上选择一种Web字体,然后该应用程序显示该字体的所有选定glpyh。 我为这件事情对我来说很好而感到自豪,但是为了重新整理代码,我想最终重新讨论一下。 我还希望能够从CDN等加载woff。 谢谢阅读!
目标:http://www.porters.vip/confusion/movie.html 目标是抓取用户评分,评分人数,累计票房,三个字段。简单一看很简单是不是,我们查看源代码,发现不是那么容易。 跟我们看到的并非如此啊。这是什么操作,仔细分析网络请求,我们发现这是使用了字体反爬虫的技术,那么我们如何破解呢? 首先我们得用网络请求这个字体文件,然后下载下来。 woff_url = 'http://www.porters.vip/confusion/font/movie.woff' woff = r
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory;
Node.js本身并没有直接逆向WOFF字体文件的功能,WOFF(Web Open Font Format)是一种字体文件格式,用于网页字体的压缩和分发。逆向WOFF字体文件通常意味着需要从WOFF格式转换回原始的字体格式,比如TrueType(TTF)或OpenType(OTF)格式。 要逆向WOFF字体文件,你可以使用一些现成的工具,如Python脚本、在线转换服务或者专门的库。如果你希望在Node.js环境中实现这一功能,你可能需要依赖外部命令行工具或编写一个Node.js扩展来调用底层字体处理库。 以下是一个大致的步骤说明,用于在Node.js中逆向WOFF字体文件: 1. 找到可以将WOFF转换为其他字体格式的命令行工具,如`fonttools`或`woff2otf`。 2. 使用Node.js的`child_process`模块中的`exec`或`spawn`函数调用这些工具。 3. 将WOFF文件作为输入,将转换后的文件保存为所需格式。 示例代码如下: ```javascript const { exec } = require('child_process'); const woffFilePath = 'path/to/your/font.woff'; const outputFilePath = 'path/to/your/font-output.ttf'; exec(`woff2otf ${woffFilePath} ${outputFilePath}`, (error, stdout, stderr) => { if (error) { console.error(`执行的错误: ${error}`); return; console.log(`标准输出: ${stdout}`); if (stderr) { console.error(`标准错误输出: ${stderr}`); console.log('WOFF字体文件逆向转换完成!'); 请确保你已经安装了`woff2otf`工具,并且它在你的系统PATH中,否则你需要指定正确的路径。 requests 使用代理报错 Cannot connect to proxy.‘,FileNotFoundError(2, ‘No such file or directory问题解决