![8b49c4639a9e21273d9deb8a96992156.gif](https://i-blog.csdnimg.cn/blog_migrate/d6fbebbfaa8969b0d3ed91f79665902b.gif)
SVG反爬虫不同于字体反爬虫,它巧妙的利用css 与 svg的关系,将字符映射到网页中,看起来虽然正常,但是却抓取不到有效内容。本文带你深入浅出,破了SVG反爬虫的套路,学会之后,可应用于某点评网。
一、初识SVG反爬:
为了防止面对监狱编程,我在本地自己做了一个网页用于爬虫测试。任务是爬取票据中的产品价格信息,按照往常一样审查元素定位目标节点,但是发现事情并不简单。
看图:
¥
符号后面并没有我们想要的价格信息,而是四个d标签取而代之。随便选中一个
7
,发现对应的是属性class=lhtqsc的d标签。
看css样式:
有两段描述这个标签的语句,第一段比较常规,但是其中的
background-image: url(../css/zhiliao.svg);
就有点奇怪,而第二段,描述的是background,它的值是两个 大小值,单位px。
打开svg文件查看:
貌似是没什么规律的数字
![2c277ecf683ceb2ed9b81c58a932cd47.png](https://i-blog.csdnimg.cn/blog_migrate/93bfe156d043606f9e7bea0dfeb03ae9.png)
查看该页面网页源代码,发现是张这样的:
二、什么是SVG?
想要搞定SVG反爬虫就得先搞清楚SVG:
SVG是一种基于xml用于描述矢量图的图形格式,由于矢量图放大或缩写都不会影响图形的质量,所以被较多的应用在web站点与APP中,常见的存在形式是图标。
编写一个SVG文件:
为了方便,我们可以把要写的svg,写到HTML文件中,新建一个
svg.html
键入如下内容:
<html>
<body>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<text x="0" y="15" fill="red">I love zhiliaotext>
svg>
body>
html>
浏览器打开如下:
![12e431495b534622df3579949456c21e.png](https://i-blog.csdnimg.cn/blog_migrate/855b7a181eef4534566618ee50912b29.png)
其中:
<text x="0" y="15" fill="red">I