大众点评字体_【网络爬虫实战】解决大众点评搜索页面字体加密
最近在写一个针对大众点评的爬虫框架。
本篇讨论大众点评搜索页的字体加密,相关代码也可以在github中找到。
首先查看加密:
请求回来后发现html源码为乱码。
所以我们的目标就是找到“乱码”和数字的映射,替换即可。
那么问题来了,哪来的这个映射呢?就是woff文件。
我们可以在查看器中观察到三个大众点评自带字体:
,我们根据链接下回来之后,使用fontcreater打开
我们获得了字体,把鼠标在字体上悬停就可以看到这个字体的代码了(因为悬停的悬浮窗截图没办法截到,就不展示了)。
那么怎么映射字体代码和上图中的代码呢(glyphxxx),这里使用了文字识别,将文字和代码识别出来,然后和文字编码进行匹配,最终获得了如下图这种映射:
这就解决了吗?好像并不是这么简单,在标签前还有一个class
而我们获取的文件也有三个woff文件,种种迹象表明,是有多种字体文件,最终我们找到了addredd shopNum、tagName三个字体文件,分别作了映射之后,运行程序。
发现并没有替换,大惊,什么情况?经过查看发现,大众点评的字体文件竟然是动态的——每次向客户端发送不一样的woff文件。
现在问题就又来了,怎样获得服务器向前端发送的不同woff文件?经过检查html源码,我们发现有一个带有图文混排css注释的css链接:
我们访问这个链接:
我们获得如下css:
@font - face
{font - family: "PingFangSC-Regular-shopNum";
src: url("//s3plus.meituan.net/v1/mss_73a511b8f91f43d0bdae92584ea6330b/font/67d9aaac.eot");
src: url("//s3plus.meituan.net/v1/mss_73a511b8f91f43d0bdae92584ea6330b/font/67d9aaac.eot?#iefix")
format("embedded-opentype"), url(
"//s3plus.meituan.net/v1/mss_73a511b8f91f43d0bdae92584ea6330b/font/67d9aaac.woff");}.shopNum
{font - family: 'PingFangSC-Regular-shopNum';}
@font - face
{font - family: "PingFangSC-Regular-reviewTag";
src: url("//s3plus.meituan.net/v1/mss_73a511b8f91f43d0bdae92584ea6330b/font/2c635423.eot");
src: url("//s3plus.meituan.net/v1/mss_73a511b8f91f43d0bdae92584ea6330b/font/2c635423.eot?#iefix")
format("embedded-opentype"), url(
"//s3plus.meituan.net/v1/mss_73a511b8f91f43d0bdae92584ea6330b/font/2c635423.woff");}.reviewTag
{font - family: 'PingFangSC-Regular-reviewTag';}
@font - face
{font - family: "PingFangSC-Regular-address";
src: url("//s3plus.meituan.net/v1/mss_73a511b8f91f43d0bdae92584ea6330b/font/14e4766b.eot");
src: url("//s3plus.meituan.net/v1/mss_73a511b8f91f43d0bdae92584ea6330b/font/14e4766b.eot?#iefix")
format("embedded-opentype"), url(
"//s3plus.meituan.net/v1/mss_73a511b8f91f43d0bdae92584ea6330b/font/14e4766b.woff");}.address
{font - family: 'PingFangSC-Regular-address';}
@font - face
{font - family: "PingFangSC-Regular-tagName";
src: url("//s3plus.meituan.net/v1/mss_73a511b8f91f43d0bdae92584ea6330b/font/67d9aaac.eot");
src: url("//s3plus.meituan.net/v1/mss_73a511b8f91f43d0bdae92584ea6330b/font/67d9aaac.eot?#iefix")
format("embedded-opentype"), url(
"//s3plus.meituan.net/v1/mss_73a511b8f91f43d0bdae92584ea6330b/font/67d9aaac.woff");}.tagName
{font - family: 'PingFangSC-Regular-tagName';}
我们可以发现,有4套链接,每一套中都有一个woff文件(也确实比我们之前找的3套要多,只不过reviewTag在这里面并没有使用)
那既然是动态发送,我们就需要动态解析了。
我们首先就是获取css链接,然后解析出woff文件,然后使用TTFont解析出xml文件,根据我们之前在fontCreator获得的映射,最终动态生成加密字体映射。
大众点评字体_【网络爬虫实战】解决大众点评搜索页面字体加密相关推荐
- python爬取腾讯视频弹幕_网络爬虫实战(四):爬取腾讯视频电视剧弹幕-Go语言中文社区...
文章目录 实战背景 说到被翻拍最多的大概就是金庸先生的剧了,有华人的地方就会有金庸剧.而在他的多部小说中,翻拍次数最多的无疑就是<倚天屠龙记>了,而且次数已经高达十四次.最早的是1963香 ...
- Python3网络爬虫实战-38、动态渲染页面抓取:Splash的使用
Splash 是一个 JavaScript 渲染服务,是一个带有 HTTP API 的轻量级浏览器,同时它对接了 Python 中的 Twisted和 QT 库,利用它我们同样可以实现动态渲染页面的抓 ...
- python爬虫实战一|大众点评网
PS:如果不懂的可以看我的上一篇文章快速入门Python爬虫 阶段 类型 问题 需要做到 1 请求 网页数据在哪里? 发现网址url规律 2 请求 如何获取网页数据 先尝试使用requests成功访问 ...
- python商业爬虫教程_廖雪峰老师的Python商业爬虫课程 Python网络爬虫实战教程 体会不一样的Python爬虫课程...
廖雪峰老师的Python商业爬虫课程 Python网络爬虫实战教程 体会不一样的Python爬虫课程 1.JPG (53.51 KB, 下载次数: 1) 2019-8-9 08:15 上传 2.JPG ...
- Python 网络爬虫实战:猫眼电影 38950 条评论数据告诉你《无名之辈》是否值得一看?
11月16日,一部无流量明星.无大制作.无大IP的"三无"国产电影<无名之辈>上映后,竟然连续打败了超级英雄"毒液".会魔法的"神奇动物& ...
- Python 网络爬虫实战:去哪儿网旅游攻略图文爬取保存为 Markdown电子书
接上回,<Python 网络爬虫实战:爬取<去哪儿>网数千篇旅游攻略数据>. 我们爬取到了数千篇的旅游攻略文章的数据. 但是事情还没有结束,对于大部分的人来讲,最希望得到的东西 ...
- python基础实例 韦玮 pdf_韦玮:Python网络爬虫实战解析
2016年12月27日晚8点半,CSDN特邀IT专家.<Python系列实战教程>系列图书作者韦玮带来了主题为"Python网络爬虫反爬破解策略实战"的Chat交流.以 ...
- java爬取网页数据_Python网络爬虫实战(二)数据解析
Python网络爬虫实战 (二)数据解析 本系列从零开始阐述如何编写Python网络爬虫,以及网络爬虫中容易遇到的问题,比如具有反爬,加密的网站,还有爬虫拿不到数据,以及登录验证等问题,会伴随大量网站 ...
- python爬虫文件代码大全-Python网络爬虫实战项目代码大全(长期更新,欢迎补充)...
WechatSogou[1]- 微信公众号爬虫.基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典.[1]: https://github ...
- python代码大全p-Python网络爬虫实战项目代码大全(长期更新,欢迎补充)
WechatSogou[1]- 微信公众号爬虫.基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典.[1]: https://github ...
最新文章
- python axis=0 axis=1的区别
- pytorch nms 放大缩小
- SQL数据库学习之路(五)
- windows bat脚本中调用Cygwin并执行命令
- sqlite 导入 mysql_SQLite 数据库的一些基本操作
- cad输入法自动切换_百度输入法 Linux 版本发布,支持 Ubuntu/Deepin
- 3 MIGO采购订单收货报错-表T169P,表目S001不存在
- poi导入excel日期处理_poi解析excel读取日期为数字的问题
- .Net程序测试阿里云OSS开放存储服务
- MapGIS Mobile开发
- android fastboot流程,FastBoot的使用步骤
- js 直接打开选择文件窗口_【网络爬虫教学】一分钟带你快速寻找JS加密入口(二)...
- Vs code PIO一直loading
- 对象存储基本知识介绍
- 实话谈扶贫第一篇——教育扶贫
- 斯坦福的《机器学习》课程上线了
- 企业微信工作台集成CAS实现单点登录
- 服务器主板准系统怎么拆,主板准系统及电源装箱步骤完成_技嘉 GA-B85M-D3V_主板评测-中关村在线...
- 【2018.10.1】「JOI 2014 Final」年轮蛋糕
- 打工还是创业?思路决定出路!