爬虫学习——24.字体反爬

news2025/1/11 12:50:46

什么是字体反爬

网页开发者自己创造一种字体,因为在字体中每个文字都有其代号,那么以后在网页中不会直接显示这个文字的最终的效果,而是显示他的代号,因此即使获取到了网页中的文本内容,也只是获取到文字的代号,而不是文字本身。 简单的说,字体反爬指的就是浏览器页面上的字符和调试窗口或者源码中的内容,显示的不一样,这就是字体反爬。

字体反爬原理

在之前,网站开发者在设计网页时只能使用公用的字体来展示网页中的数据。但是,随着CSS样式的深入开发,网站开发者可以将自己的字体放到服务器中。当用户在访问Web界面时,对应的字体就会被浏览器自动下载到用户的计算机中,然后通过CSS样式进行调用。之后,通过一种映射关系,使得网页中的源数据变为真正的数据进行展示。

通过这种方式,使得这样就使得网站开发者进行网页设计时,只需要使用特殊字符进行占位即可,不需要将真正的数据放到页面中去。这样,爬虫程序如果不知道这种映射关系的话,就无法从字体中获取正确的数据,从而实现反爬虫。

字体映射表的处理

1、下载对应的字体文件

字体是在服务器上进行存储,并通过浏览器下载到我们的电脑上的,那么我们就可以在网站上找到加载的字体文件,下载下来。

2、寻找映射关系

通过对源网页中的占位数据和字体进行比对找到规律

3、构建映射算法

在上面我们已经找到了字体之间映射关系,那么我们现在就可以开始用Python来构建映射算法,从而使得爬虫可以获取一个正确的数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1959829.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

还搞不清楚String、StringBuilder、StringBuffer?

目录 一、String——引用类型,而不是基本数据类型 二、StringBuffer类 三、StringBuilder类 四、String、StringBuffer、StringBuilder比较 五、String、StringBuffer、StringBuilder的选择 一、String——引用类型,而不是基本数据类型 1.…

怎么隐藏搜狗输入法

点击输入法,右键选择更多 点击选项,点击全屏隐藏

《“八股文”之辩:程序员面试与实际工作的纠葛》

在当今的编程世界中,“八股文”成为了一个备受争议的话题。它既是大中小企业面试程序员时的常见问题,又引发了广泛的讨论和思考。那么,“八股文”究竟在实际工作中扮演着怎样的角色呢? “八股文”作为面试的必问内容,…

福建聚鼎:现在装饰画好做吗

在当今社会,随着人们审美情趣的提升和生活品质的改善,家居装饰画已经成为了一种流行的墙面装饰方式。许多人都在思考,现在做装饰画是否是一个好时机? “逆水行舟,不进则退。”在日新月异的市场中,装饰画行业的竞争愈发…

利用 Python 和 IPIDEA:跨境电商与数据采集的完美解决方案

目录 实操案例:利用 IPIDEA 进行数据采集步骤一:注册和获取代理IP步骤二:编写数据采集添加错误处理数据存储到 CSV 文件多线程采集数据 步骤三:处理和分析数据 总结 实操案例:利用 IPIDEA 进行数据采集 我们今天用一个…

TCP/IP 网络模型详解(二)之输入网址到网页显示的过程

当键入网址后,到网页显示,其间主要发生了以下几个步骤: 一、解析URL 下图是URL各个元素所表示的意义: 右边蓝色部分(文件的路径名)可以省略。当没有该数据时,代表访问根目录下事先设置的默认文…

零基础STM32单片机编程入门(二十四) 内部FLASH详解及读写实战含源码

文章目录 一.概要二.内部FLASH地址空间排布三.内部FLASH主要特色四.内部FLASH读写操作1.FLASH数据读取2.FLASH数据擦除3.FLASH数据写入 五.内部FLASH的各种保护1.写保护2.读保护 六.FLASH读写例程七.CubeMX工程源代码下载八.小结 一.概要 STM32F103C8T6是一款强大而灵活的微控…

Language——基础

前言 开发语言的本质 不同数据类型之间的值传递 正则表达式 (1) 几乎所有语言都支持正则表达式 (2) ^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$ 数据库 (1) 增删改查 一. Python 二.Java 主语言 1. 文件类型 (1) 源代码文件 java——java程序源代码 …

keepalived介绍以及配置主备库自动切换,一条龙服务

Keepalived是什么? Keepalived是一种用于实现高可用性(HA)的开源软件,它通过虚拟路由冗余协议(VRRP,Virtual Router Redundancy Protocol)来实现主备切换,从而提高服务的可用性。 虚拟路由冗…

Matplotlib知识点详解(巨详细!!!)

37.Matplotlib: 配置参数: 如果浏览器不显示图片,加上 %matplotlib inline 让图片可以显示中文 plt.rcParams[font.sans-serif]SimHei 让图片可以显示负号 plt.rcParams[axes.unicode_minus]False 支持svg矢量图 %config Inlineback…

[C++] 深入浅出list容器

文章目录 list介绍list接口的使用构造函数iterator迭代器capacity**element access**modifiers list中的迭代器失效问题常见容器及其迭代器类型特性单向迭代器(Forward Iterator)双向迭代器(Bidirectional Iterator)随机访问迭代器…

肆[4],VisionMaster全局触发测试说明

1,环境 VisionMaster4.3 2,实现功能 2.1,全局触发进行流程控制执行。 2.2,取像完成,立即运动到下一个位置,同步进行图片处理。 2.3,发送结果的同时,还需要显示图像处理的痕迹。 …

力扣爆刷第168天之TOP200五连刷106-110(每日温度单调栈、盛水最多滑动窗口、全排列回溯)

力扣爆刷第168天之TOP200五连刷106-110(每日温度单调栈、盛水最多滑动窗口、全排列回溯) 文章目录 力扣爆刷第168天之TOP200五连刷106-110(每日温度单调栈、盛水最多滑动窗口、全排列回溯)一、138. 随机链表的复制二、739. 每日温…

⌈ 传知代码 ⌋ 记忆注意力用于多模态情感计算!

💛前情提要💛 本文是传知代码平台中的相关前沿知识与技术的分享~ 接下来我们即将进入一个全新的空间,对技术有一个全新的视角~ 本文所涉及所有资源均在传知代码平台可获取 以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦&#x…

【TS】TypeScript数组类型:掌握数据集合的类型安全

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 TypeScript数组类型:掌握数据集合的类型安全引言1. TypeScript数组类…

Three.js结合物理引擎实现掉落效果

<template> </template><script setup> import * as THREE from three import gsap from gsap //导入轨道控制器 import { OrbitControls } from three/examples/jsm/controls/OrbitControls // 导入 dat.gui import { GUI } from three/addons/libs/lil-gui…

好用的抠图软件在哪里找?这篇文章就有几款好用的抠图工具

在图像处理的世界中&#xff0c;抠图技术无疑是一项至关重要的技能。 无论是设计师、摄影师还是普通的图像编辑爱好者&#xff0c;都可能需要从一张图片中精确地分离出某个对象或元素。但是&#xff0c;手动抠图不仅耗时而且技术要求高&#xff0c;这时候&#xff0c;一款优秀…

PTrade常见问题系列17

是否支持量化帐号的指定服务器分发? 是否可以支持部分量化帐号不根据原有分发规则&#xff0c;而是直接指定分发&#xff1f; 1、若需要增加VIP服务器专用于新增的帐号进行分配&#xff0c;可以参考【量化】量化Nginx用户指定服务器处理步骤.docx&#xff1b; 2、若所有服务…

【音视频之SDL2】Windows配置SDL2项目模板

文章目录 前言 SDL2 简介核心功能 Windows配置SDL2项目模板下载SDL2编译好的文件VS配置SDL2 测试代码效果展示 总结 前言 在开发跨平台的音视频应用程序时&#xff0c;SDL2&#xff08;Simple DirectMedia Layer 2&#xff09;是一个备受欢迎的选择。SDL2 是一个开源库&#x…