

近期接触到一些关于反爬的问题,如字体图标加密、CSS偏移、逆向抓取,下面和大家分享几种常见的反爬策略及解决思路。
什么是反爬?“反爬”是指网站为了保护自己的数据不被无限制地复制和使用,采取的一些措施。这些措施可以防止或者至少降低网络爬虫(也称为蜘蛛、机器人)对网站进行深度爬取的能力---来自GPT的官方回答。
简而言之,反爬是保护数据安全的一种策略,可以减少恶意请求占用服务器资源,保护用户隐私和版权不被侵犯。

某些网站会将价格、联系方式、数量等数据伪装成图片的形式,和文本形式的数据混合展示在网页上,这对用户是无感的。对于爬虫程序来说无法直接获取到这些敏感信息。

网站链接:
https://www.gxrc.com/
该反爬手段是直接用图片替换了原来的内容, 所以爬虫程序是无法直接获取内容的, 唯一的破解手段就是将图片下载下来, 然后使用 OCR(文字识别) 技术对图片内容进行一个识别。
在HTML中将文本的顺序打乱,通过CSS的绝对定位还原文本的真实顺序,这样子爬虫获取到的只是html中打乱后的文本信息

网站链接:
https://antispider3.scrape.center/page/9
https://flight.qunar.com/site/oneway_list.htm?searchDepartureAirport=%E5%8C%97%E4%BA%AC&searchArrivalAirport=%E4%B8%8A%E6%B5%B7&searchDepartureTime=2024-02-01&searchArrivalTime=2024-02-03&nextNDays=0&startSearch=true&fromCode=BJS&toCode=SHA&from=flight_dom_search&lowestPrice=null
需要找到偏移规律, 一般是偏移量的大小然后根据规律排列出正确的数据! 如上例子, 根据观察是通过 left 进行偏移的, 那么这里就可以提取出每个标签中 left 的值, 然后根据规律来排列出真实的数据。
字体反爬也就是自定义字体反爬,通过调用自定义的ttf文件或woff文件来渲染网页中的文字,而网页中的文字不再是文字,而是相应的字体编码,通过复制或者简单的采集是无法采集到编码后的文字内容。


网站链接:
https://www.maoyan.com/films/1458876?requestCode=674e0052c338ca665999141899f196c85tdlh
和上文提到的 图⽚伪装 和 字体反爬 其实有点类似, 通过 SVG 来展示页面上一些敏感信息, 在不影响用户正常阅读同时, 让爬虫程序无法像读取文字那样获得 SVG 图形中的内容; 由于 SVG 中的图形代表的也是一个个文字, 所以在使用时必须在后端或前端将真实的文字与对应的 SVG 图形进行映射和替换

4.2 破解方法
方法其实很简单,SVG可以被当成图片使用,也可以被当作字体被使用,这里需要找到源网站使用 SVG 的使用方式, 然后找到其规律进行破解,如果不想麻烦也可以通过OCR识别来识别内容。