python爬虫反爬 对方是如何丧心病狂的通过css

阅读: 评论:0

python爬虫反爬 对方是如何丧心病狂的通过css

python爬虫反爬 对方是如何丧心病狂的通过css

你要想去反反爬

你就要先站在对方的角度去思考问题

有句话这么说来着

“知己知彼,才能那啥”

那么对于像猫眼电影、大众点评等等

那样的 css 自定义字体加密

应该怎么破呢?

接下来就是

学习 python 的正确姿势

有人说了

不就是把字体通过 unicode 编码吗?

那就简单了啊

把每个字的编码找到

然后使用字典把编码和对应的字对应起来

抓取分析的时候

直接替换不就得了

有道理是有道理

但是

如果我每次返回给你的编码都不一样呢?

你说死不死

好了好了,先别哭得那么舒服

我们来看看天猫电影票房榜单的页面

正如你所看到的那样

这里也使用了字体加密

通过源代码我们可以看到

font-face这里制定了字体文件路径

还是熟悉的配方

熟悉的味道~

不过小老弟

还是不要开心太早

刷新几次你就会发现

(盯着下图 2 秒钟)

看到没有

字体文件一直在变

woc!

玩呢?

我们先把字体文件下载下来

# 把整个页面搞下来

url = ''

html = download_html(url).decode('utf-8')

用正则把字体文件名拿一下

font_file_name = re.findall(r'//ituan/colorstone/(w+.woff)', html)[0]

拿到了文件名之后就构建一下url

然后把字体文件下载下来

url = '/' + font_file_name

font_file = download_html(url)

接着把字体文件写到本地文件中

with open('fonts/' + font_file, 'wb') as f:

f.write(new_file)

使用 fontTools 来获取字体

如果你之前没安装的话要安装才能用

接着我们把字体文件保存为 xml

font = TTFont('fonts/' + font_file)

font.saveXML('./'+font_file+'.xml')

快打开打开看看

哇,这些玩意

有点眼熟啊

这不就是加密的 unicode 码么

左边的 id 难道就是对应的数字?

没那么简单

黄小琥 - 简单不简单

没那么简单

就能找到聊得来的伴

尤其是在看过了那么多背叛

总是....

不好意思

走错片场了

回到我们刚刚的 xml 文件

往下拉一下

可以看到这个

这里每一个编码都对应一个 TTGlyph 对象

从各种 x y 坐标可以猜测

它应该是用来绘制一个字的

我们把任意一个对象复制一下

然后用 matplotlib 根据坐标画个图试试看

import matplotlib.pyplot as plt

import re

str = ''''

.....此处省略一点代码

'''

x = [int(i) for i in re.findall(r'

本文发布于:2024-02-05 08:46:19,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170728285265033.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:丧心病狂   爬虫   python   css
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23