大众点评评论抓取-加密评论信息完整抓取

前言:

之前写的抓取大众的商家信息和点评评论星级,前两篇博文可以自行查阅,后面经常有人问我评论信息怎么抓取,因为以前评论部分没有加密,如今大众点评的评论信息做了前端字体加密,因此一般不会完整的抓取到信息,今天做一下更新。

前两篇博文:

大众点评热门餐厅抓取与数据分析

大众点评评论抓取,这个是老版本的,但是注意点还是可以看看的,以免被反爬。


本篇博文更新于2018/12/20,针对目前加密方式可行,未来不可知。

先说说它怎么做了加密吧。

如下图:部分字体被<span>标签包含,实际它是一张svg背景图,用css样式控制雪花图显示加载,并且可以看到他的css的background属性,可自行更改看看效果,注意字体width:14px,这个后面为解密有用。

思路:

1. 获取评论部分的完整HTML样式,把整个内容用list存起来;

2. 获取css样式,样式在源码的位置,如下图,我们需要的是每个span标签里的class属性值,因为它对应background坐标信息。

3. 从css样式中动态取svg图片链接,生成字典库,然后用第二步的css坐标经过处理,查找真实字所对应的值,并返回最终真实评论。

步骤:

图一各标签位置还是需要了解一下的。

一、查看源码,知道css样式链接在哪里,保存该链接。

二、第一步获取的css链接样式里会有一个background-image标签,里面包含加密字体的svg路径,保存该路径,同时将该css文件的.*****{background:-*,-*}做成字典保存起来。

敲黑板了:图片一中提到过字体样式宽度为14px,因此我们把获取的background的x坐标/14,就是最终加密字体svg中的位置,svg每一行的字符串可转为数组存储,这样就能建立对应关系。background的y坐标要和svg中的<path>中的值比较,后续说。

三、这是加密字体的svg文件,注意看<path> 标签,它的id对应后面<textPath>标签的href值,它的d值就很有意思,也是解密的关键。

敲黑板了:步骤二中提到过background的y值,再和d列的M0后面值做比较就有意思了,比如
.gqi4j {background: -98.0px -130.0px;} 中的y:-130,取正数130,小于<path>标签中的d属性第二列的174这个值,则对应加密字库实际y轴为174,对应的id=4,就是<textPath>中的href标签,也就是加密字体的y轴坐标,

评论 41
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值