非常关键的一步(没这步就会显示乱码)

直接爬取(错误爬取页面)

当你直接在店铺页面爬取时

在F12选取元素后会发现html文件里面的字是乱码字

正确的爬取页面


进入商家页面的review_all页面,直接在商家URL地址后面加,或者

打开这个位置的URL
此时再审查元素就可以看到我们想要的东西了

界面元素审查

不得不说,大众点评的反爬虫措施还算可以,但是为了网页加载的运行效率,反爬措施无法做得非常深入,给反反爬虫给了非常大的机会。

随便找一个大众点评的评论来进行分析,发现评论的是子字和图片(svgmtsi标签)混合起来的,而且最骚的是,你每次刷新,它都会重新将某些文字换成图片。

第一次刷新

第二次刷新

行不通的解决方案

Q:所以,难道解决方案是通过不停的刷新来获取文字最后进行拼接吗(并不是:( )
A:一直刷新显得非常玄学,而且程序还不好判断文字是否补全

Q:用OCR把图片一个个转换成文字?
A:1.OCR贵。2.OCR贵。3.OCR贵。4.他效率不高啊(网好很高,高了也贵)

寻找正确的解决方案

答案就在前端中

根据文字会随机变成图片的规则,我想到了应该存在字库这样的东西。(以前是字体来进行反反爬虫的)
那么这个字库在哪呢?

从来都没见过的新标签

这是啥?
我在百度了一会只找到了svg没找到这个标签。
此时一旁的CSS样式表带我找到了答案~~

没错,这个标签应该是导入进来的,并且从这个CSS中可以看出,有一个CSS的样式表并且这个样式表里面有着所有class="pld***"的某个属性设置,前面这些标签的class值可以推断出这些图片的class全是以pld开头的,并且这个CSS还设置了widthheight还有background-image,从而将文字变成图片。
这个CSS非常关键

为了弄清楚这个CSS到底是哪来的,就得从源代码挖掘

层层递进–抽丝剥茧

源代码挖掘


打开源代码,一眼就可以看得两个导入的样式表,其中有个样式表带有SVG的字样,很明显这就是我们要找的样式表。

样式表挖掘


打开样式表,非常杂乱,但是我看到了我想要的东西----很多开头为pld的class
整理一下

这个坐标值很明显就是文字的坐标值,那就是有个文字库,文字库变成了图片,然后根据坐标值进行裁剪。
并且在这个样式表中我发现了之前的CSS代码

svgmtsi[class^="pld"] {width: 14px;height: 24px;margin-top: -14px;background-image: url(//s3plus.meituan.net/v1/mss_0a06a471f9514fc79c981b5466f56b91/svgtextcss/3227a6ecbf70945a0bb6adfd922e6ea1.svg);background-repeat: no-repeat;display: inline-block;vertical-align: middle;
}

并且给出了图像网址,打开它,整个字库就出现在了面前

根据之前的分析,基本上可以确定整个流程图

验证猜想

首先我写了这么一段HTML代码看能不能显示出图片文字

pld27n在原网页上就是显示为

的确,显示了字,验证了我的猜想
那么这个坐标值是不是真的可以截出这个字呢?

字的剪切

.pld27n {background: -238.0px -2241.0px;
}

我找到了这个字的坐标值,并且在这个字库的源代码里面也发现了坐标值

<text x="0" y="2158">蹲案看杀广哄吞伴疮背廉访扣赚现径们厉惭士积想熔默驼饲杂易仁壶痛弱馋拿氧拐遍抄遗爆嫩拌</text>
<text x="0" y="2191">歇题举耐惠熟旁与剑都素字递锯泉腔害始逃跑潮店舅零介洞匹虹萌祸电板桶罩盐鼻阳然职捎闲茎</text>
<text x="0" y="2225">名型交穴喇排鹅蜓灿仙奸暴罐需漆换睁谜储宋伍粪角稼带晓还慕球习栏叔瑞周贡迷刘撒召闷搂烛</text>
<text x="0" y="2264">甚驻惊汇焰户舰互罗滩定拒财存之风屿重梦浙羽填共育次勿惰寻臂旨锡度歌配饱丧画埋外鸭骆磨</text>
<text x="0" y="2298">靠朴截竿脂汪匀锤聪串策砍添蝶飞父凶择迅亩翼拥耕巷该筋施缘键丘触过殖澡兽女蛇蛙粮壤炼怕</text>
<text x="0" y="2343">彼头切装蒜摧按绘鹿升停扑贴生纤观尤皮醉围淡</text>

字出现在了<text x="0" y="2264">这个标签里面,并且为第18字
前面又可知,每个图片的宽为14,长为24
分析这几个数字,我得出了这样的换算公式
X坐标:14(宽度)(18(位置)-1(起始点在字前面))==1417=238px
Y坐标:2264(所在行坐标)-24(高)+1(加1像素就可以等于)==2241px

之后我也试了其他的字,也是这个规律
CSS位置:
http://s3plus.meituan.net/v1/mss_0a06a471f9514fc79c981b5466f56b91/svgtextcss/04cc0a6880e00deb1d952ce411661c99.css
字库位置:
http://s3plus.meituan.net/v1/mss_0a06a471f9514fc79c981b5466f56b91/svgtextcss/3227a6ecbf70945a0bb6adfd922e6ea1.svg

到此为止,字库破解已经完成,可以直接用程序将文字和标签一一对应,生成一个字典方便爬虫使用

反反爬虫 大众点评-图片文字破解 2020年6月6日更新相关推荐

  1. 破解花式反爬之大众点评-中

    破解花式反爬之大众点评-上 昨天试探性的爬取了大众点评的数字信息,但一般我们获取的数据中,不止是这些数字信息.在基本信息里面,地址也是一个很重要的数据.于是今天尝试一下怎么获取地址. 思路和数字是一样 ...

  2. python爬虫大众点评店铺信息(字体加密)

    python爬虫大众点评店铺信息(字体加密) 1.观察网站 发现部分字体加密 2.查看请求的字体文件 发现请求到了两个字体文件,把他下载打开 3. 这就是对应该网页每个字体的unicode,发现两个字 ...

  3. 大众点评最新字体解密19年7月

    有网友说我之前写的 大众点评字体解密 的方法已经失效了,所以更新一篇解密 2019年7月25日. 查看加密 看到都是小框框,为了一探究竟我们查看源码找到加密处 所有文字都是  > 这样的怪符 ...

  4. 图片记录:2008年12月4日夜晚,暴风雪突袭烟台-上

    好大一场暴风雪,积雪厚度超过30厘米!"船长"第二时间(次日上午),来到现场,进行图片报道. 作者:陈海青(josonchen,"船长") (http://ww ...

  5. 新浪微博爬虫分享(2016年12月01日更新)

    前言: 上篇文章:<新浪微博爬虫分享(一天可抓取 1300 万条数据)>.<新浪微博分布式爬虫分享> Github地址:SinaSpider Q群讨论: 更新完<QQ空间 ...

  6. 2020年4月2日解决Xmind8自己插入的图片丢失问题的可执行方案

    @2020年4月2日解决Xmind8自己插入的图片丢失问题的可执行方案

  7. 爬虫 — 大众点评商户信息的爬取和文字反爬

    信息爬取 import requests from lxml import etree import time import json import pandas as pd# 获取商户名称和ID r ...

  8. 破解花式反爬之大众点评-下

    要想全站爬取,首先需要分商区.菜系,这样得到的数据才全,不然网站默认只显示50页的数据,根本不满足要求. 第一步,获取所有商区和菜系的url从http://www.dianping.com/beiji ...

  9. CSS反爬虫 大众点评

    在爬虫时,我们会经常遇到一些反爬虫的例子,网站上通过反爬虫便使得我们无法获取真实的数据信息,有兴趣的同学可以看下这篇文章(点我呀),其中介绍了多种的反爬虫和对应的策略. 在大多数数据较多的网站中,其经 ...

最新文章

  1. 基于K8S构建企业级Jenkins CI/CD平台实战(一) 之 环境搭建
  2. jQuery学习笔记:attr()与prop()的区别
  3. 推荐 14 个 GitHub 上优质的原创前端博客文章仓库
  4. D3js(二): d3js基础
  5. HttpServletRequest 常用方法讲解
  6. 法斗几个月长鼻筋_路医生说丨脚底板早起一下地特别疼?得了足底筋膜炎,该怎么办?...
  7. python基础数据类型语法
  8. 使用图片拉伸resizableImageWithCapInsets
  9. 【bzoj3297】[USACO2011 Open]forgot STL+dp
  10. BP神经网络模型介绍
  11. 【Jmeter配合switchyomega 脚本录制】
  12. 计算机word水印在哪,word中如何加入水印的两种方法
  13. 计算机无法连接steam,无法连接至steam网络怎么办 无法连接至steam网络解决方法【图文】...
  14. 神经网络与深度学习第三周-Planar data classification with one hidden layer
  15. 人工智能300年!LSTM之父万字长文:详解现代AI和深度学习发展史
  16. 2021-10-18墨画子卿第一章
  17. oracle与用友的差别,用友U9 PK SAP/Oracle:敢比就是赢
  18. H2 数据库怎么导出和导入
  19. 初学OpenCV:用本地摄像头拍照并保存为灰度图片
  20. 大数据环境下,征信,真的那么美好吗?

热门文章

  1. SpringBoot后台管理系统框架
  2. 『最小表示法 Necklace』
  3. 蓝桥杯 省赛真题寻找 2020
  4. 软件测试简历包装我们会了,但测试人的自我“包装”呢?HR自我介绍包装小技巧【建议收藏】
  5. 关于植物大战僵尸如何更改关卡与金币
  6. 【ALM】POLARION ALM之需求管理解决方案介绍
  7. UltraEdit的注册码
  8. CardView(墨客)
  9. Android 的monkey测试及排错步骤
  10. 《蝶恋花·伫倚危楼风细细》 柳永