SVG全称为ScalableVectorGraphics,是一种基于XML并可以缩放的矢量图片文件格式
而SVG反爬是利用CSS样式及SVG图片,将SVG图片中提取字符内容,映射到网页元素中,由于不能直接通过网页元素直接提取数据,所以起到了反爬的目的
目标对象:
aHR0cDovL3d3dy5wb3J0ZXJzLnZpcC9jb25mdXNpb24vZm9vZC5odG1s
1、分析
打开目标页面,查看页面中电话号码的网页元素
我们发现,电话号码中的每一个数字都对应一个d标签,d标签中的class属性值都是以「vhk」开头的
查看右侧Styles样式标签后,发现上面匹配的d标签的背景图片「background-image」被设置为一张SVG图片,d标签的宽度固定为14px,高度为30px
在样式「vhkbvu」中,通过定义background_position指定背景图片的移动方向,比如:图中相当于背景图片向左移动px,向上移动97px
然后,我们查看svg图片的源文件
字体大小为14px,颜色值为#
4个text标签代表4行数字
4行数字对应的y轴坐标值固定为38、83、、
?xmlversion="1.0"encoding="UTF-8"standalone="no"?!DOCTYPEsvgPUBLIC"-//W3C//DTDSVG1.1//EN""