前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大众点评还不会爬?跟着我,我教你。

大众点评还不会爬?跟着我,我教你。

作者头像
测试小兵
发布2019-07-24 21:41:32
8860
发布2019-07-24 21:41:32
举报
文章被收录于专栏:猪圈子猪圈子

1.前言

在工作生活中,发现越来越多的人对大众点评的数据感兴趣,而大众点评的反爬又是比较严格的。采取的策略差不多是宁可错杀一万,也不放过一个。有的时候正常浏览都会跳出验证码。

另外,在PC端的展示数据是通过CSS来控制的,从网页上看不出来太大的区别,但是用普通的脚本取获取时,会发现数据是获取不到的,具体的源代码是下面这样的:

但是,在搜资料的时候,你会发现,很多教程都是用的selenium之类的方法,效率太低,没有啥技术含量。

所以,这篇文章的面向的对象就是PC端的大众点评;目标是解决这种反爬虫措施,使用requests获取到干净正确的数据;

跟着我,绝不会让你失望。

2.正文开始

相信搞过大众点评网站的同学都应该知道上面的这种是一个css反爬的方法,具体的解析操作,即将开始。

当我们的鼠标在上面框框内的span上面点击时,会发现右边部分会相应的发生变化:

这张图片很重要,很重要,很重要,我们要的值,几乎都从这里匹配出来。

这里我们看到了“vxt20”这个变量对应的两个像素值,前面的是控制用哪个数字,后面的是控制用哪一段的数字集合,先记下,后面要用,同时这里的值应该是6;

这里其实就是整个破解流程最关键的一步了。在这里我们看到了一个链接。

瞎猫当死耗子吧,点进去看看。

https://s3plus.meituan.net/v1/mss_0a06a471f9514fc79c981b5466f56b91/svgtextcss/f556c0559161832a4c6192e097db3dc2.svg

你会发现,返回的是一些数字,我一开始是不知道这是啥玩意的,看过一些大神的解析才知道,其实这里就是我们看到的数字的来源,也就是整个破解的源头,知道了这些数字的含义,也就可以直接破解了整个反爬的流程。

现在直接看源代码:

可以看到这里面的几个关键数字:

font-size:字体大小; 几个y的值,我到后面才知道原来这个y是个阈值,起的是个控制的作用。

现在我们就要用到上面的像素值了。

1.把所有的值取绝对值; 2.用后面的值来选择用哪个段的数字,这里的值是103,所以使用第三个段的数字集合; 3.因为每个字体是12个像素,所以用163/12=13.58,约等于14,那么我们数一下第14个数字是啥,没错,是6,和预期一样。你可以多试验几次。

以上,就是整个破解的逻辑过程。

画个流程图,装个逼:

3.Show Code

下面开始晒代码,俗话说得好,天下代码一大抄(公众号实在不好看代码,可以点击原文看网页版的,更清楚一点)。

这里对主要的步骤代码进行解释。

1.获取css_url及span对应的TAG值;

2.获取属性与像素值的对应关系

3.获取svg文件的url

4. 获取最终的值

4.结果展示

评论条数数据

其实,其他的我都写好了,就不贴了

评论具体数据

5.结语

以上就是大众点评Css反爬破解的全部步骤和部分代码。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python测试社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.前言
  • 2.正文开始
  • 3.Show Code
    • 评论条数数据
      • 评论具体数据
      • 5.结语
      相关产品与服务
      验证码
      腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档