问答 / 168 / 15 / 创建于 7个月前
比如 xxfb.mwr.cn/sq_djdh.html 全国水情数据,不知道怎么搞
当然可以,以下是关于 Python 反爬技术的系统性总结,包括基本策略、中高级技术以及应对常见爬虫行为的方法,适用于开发网站、接口服务等需要保护数据不被恶意抓取的场景。
ua = request.headers.get("User-Agent") if "python" in ua.lower() or "scrapy" in ua.lower(): return HttpResponseForbidden()
navigator.webdriver == True
虽然反爬技术可以有效保护资源,但也需要遵守隐私保护和合理使用原则:
我第二次遇到这种乱码加密了。我之前的做法是用OCR识别
有没有大佬给个方向,怎么分析这种乱码加密呀
{ "addvnm": "#pc9LegLrrd_1744617145580otltag䔿㾙#FontTag", "alertValue": 0.0, "bsnm": "#pc9LegLrrd_1744617145580otltag䔿䇥#FontTag", "createTime": "2025-04-11 15:40:21", "idNo": "#pc9LegLrrd_1744617145580otltag㵛㵟㵧#FontTag", "importantSection": "#pc9LegLrrd_1744617145580otltag㻡#FontTag", "lgtd": "", "lttd": "", "rvnm": "#pc9LegLrrd_1744617145580otltag䌋䌅䇥#FontTag", "stType": "#pc9LegLrrd_1744617145580otltag㶓㶅㶛㶁㶓#FontTag", "stnm": "#pc9LegLrrd_1744617145580otltag㶳䗑#FontTag", "tm": "2025-04-11 08:00:00", "z": "#pc9LegLrrd_1744617145580otltag㵣㵛.㵫㵣#FontTag" }
研究了下原理
他这个网站在后端拿到的数据就是乱码
然后通过字体渲染的方式来让肉眼看起来正常。AI告诉我这个叫【自定义的字符实体编码】
解决的方式
搜索网页上CSS文件的字体声明【@font-face】
就可以拿到ttf的字体文件。
拿到之后可以用 FontForge 进行查看映射关系,类似于下图
悲伤的是,没有找到python导出映射关系的方式。也不知道如何导出一个映射文件
另外:页面每次刷新,字体文件都会变
关系已经处理好了,一看到那个加密字解决头痛,不知道怎么做映射了
@faxi 你这个关系怎么拿到的?可以分享一下么?
我昨天提取了一部分这个东西
你看看能不能找到中文的映射呢?
我昨天提取的代码如下
from fontTools.ttLib import TTFont import json font_file_path = 'opvTZwpcKN_1744622522766.ttf' # 替换为您的字体文件路径 output_json_path = 'font_mapping.json' # 输出 JSON 文件的路径 try: font = TTFont(font_file_path) # 获取 cmap 表 (Character to Glyph Mapping Table) cmap_table = None if 'cmap' in font: cmap_table = font['cmap'] else: print("Error: No 'cmap' table found in the font file.") exit() # 选择 Unicode 平台和编码的 cmap (通常是 platformID=0, platEncID=3 或 platformID=3, platEncID=1) unicode_cmap = None for table in cmap_table.tables: if table.platformID in [0, 3] and table.platEncID in [1, 3, 10]: # 常见的 Unicode cmap 组合 unicode_cmap = table break if not unicode_cmap: print("Error: No suitable Unicode cmap table found.") exit() # 获取字符映射关系 (Unicode code point -> glyph name) char_map = unicode_cmap.cmap # 将 glyph name 替换为实际的字符 (如果可能,但这可能比较复杂,这里先简化为 glyph name) # 如果您需要将 glyph name 进一步解析为字符,可能需要更复杂的逻辑, # 比如查找 'glyf' 表,但这超出基本映射导出的范围。 # 这里我们先直接使用 glyph name 作为映射值。 mapping_data = {} for unicode_code_point, glyph_name in char_map.items(): char = chr(unicode_code_point) # 将 Unicode code point 转换为字符 mapping_data[char] = glyph_name # 或者如果您只需要 code point,可以 mapping_data[hex(unicode_code_point)] = glyph_name # 导出为 JSON 文件 with open(output_json_path, 'w', encoding='utf-8') as f: json.dump(mapping_data, f, indent=4, ensure_ascii=False) # ensure_ascii=False 防止中文乱码 print(f"字符映射关系已导出到 {output_json_path}") except Exception as e: print(f"发生错误: {e}")
font.qqe2.com/ 这里导入字体可以看到,最主要他是动态字体,每次加载的都不一样。所以需要每次打开程序获取新的进行破解。
mp.csdn.net/mp_blog/creation/succe...
我要举报该,理由是:
当然可以,以下是关于 Python 反爬技术的系统性总结,包括基本策略、中高级技术以及应对常见爬虫行为的方法,适用于开发网站、接口服务等需要保护数据不被恶意抓取的场景。
🛡️ Python 反爬虫技术总结
一、基本反爬策略
1. User-Agent 识别
2. IP 限速与封禁
3. 验证码(CAPTCHA)
4. Referer 检查
二、中级反爬策略
1. JavaScript 渲染
2. 动态 Token / 参数加密
3. 行为识别与分析
4. Session / Cookie 校验
三、高级反爬策略
1. 设备指纹识别
2. API 网关 + 动态验证
3. 无头浏览器识别
navigator.webdriver == True4. 蜜罐链接(Honeypot Links)
四、配合工具推荐
五、反爬与合法性提醒
虽然反爬技术可以有效保护资源,但也需要遵守隐私保护和合理使用原则:
我第二次遇到这种乱码加密了。我之前的做法是用OCR识别
有没有大佬给个方向,怎么分析这种乱码加密呀
研究了下原理
他这个网站在后端拿到的数据就是乱码
然后通过字体渲染的方式来让肉眼看起来正常。AI告诉我这个叫【自定义的字符实体编码】
解决的方式
搜索网页上CSS文件的字体声明【@font-face】
就可以拿到ttf的字体文件。
拿到之后可以用 FontForge 进行查看映射关系,类似于下图
悲伤的是,没有找到python导出映射关系的方式。也不知道如何导出一个映射文件
另外:页面每次刷新,字体文件都会变
关系已经处理好了,一看到那个加密字解决头痛,不知道怎么做映射了
我昨天提取了一部分这个东西
你看看能不能找到中文的映射呢?
我昨天提取的代码如下
mp.csdn.net/mp_blog/creation/succe...