熟人必看,Python爬取黄页88企业公开信息,字体反爬实战

@

⛳️ 黄页 字体反爬 实战场景

本次采集的目标站点为 https://huangye88.com ,首页截图如下所示。

熟人必看,Python爬取黄页88企业公开信息,字体反爬实战

在官网找到【企业黄页】选项卡,然后得到如下界面,其中涉及的信息如下,随机找到一个企业公开数据。

熟人必看,Python爬取黄页88企业公开信息,字体反爬实战

在公司黄页详情页可以查看到联系人和联系号码。

熟人必看,Python爬取黄页88企业公开信息,字体反爬实战

这里明显看到手机字体与其它字体有所差异,通过开发者工具进行验证之后,确定存在字体反爬。

熟人必看,Python爬取黄页88企业公开信息,字体反爬实战

保存字体文件,得到下述字体矢量图。

熟人必看,Python爬取黄页88企业公开信息,字体反爬实战

熟人必看,Python爬取黄页88企业公开信息,字体反爬实战

结果字体的编码是固定的英文,那这字体反爬的难度就变的极低了。

⛳️ 实战编码

通过开发者工具可以找到字体文件在网页源码中,所以我们编写一下相关提取代码。

import re

import requests
import base64
from fontTools.ttLib import TTFont

url = 'https://b2b.huangye88.com/qiye1edkfp0964c7/'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.67 Safari/537.36'
}

res_text = requests.get(url=url, headers=headers).text
ba64 = re.findall('base64,(.*?)\"\)', res_text)[0]
print(ba64)

data = base64.b64decode(ba64)
with open('./fonts/519.woff', 'wb') as f:
    f.write(data)
font = TTFont('./fonts/519.woff')
font.saveXML('./fonts/519.xml')

得到字体之后,保存的 XML 文档如下所示。

熟人必看,Python爬取黄页88企业公开信息,字体反爬实战

本案例已经结束。

📢📢📢📢📢📢
💗 你正在阅读 【梦想橡皮擦】 的博客
👍 阅读完毕,可以点点小手赞一下
🌻 发现错误,直接评论区中指正吧
📆 橡皮擦的第 677 篇原创博客

从订购之日起,案例 5 年内保证更新

Original: https://www.cnblogs.com/happymeng/p/16377436.html
Author: 梦想橡皮擦
Title: 熟人必看,Python爬取黄页88企业公开信息,字体反爬实战

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/564759/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球