最近在解决完淘宝爬虫接口后,因为业务需要要用到商品截图的功能,于是研究了一下,分享一下其中的难点吧~

这里我们以淘宝的某电饭煲商品为例->

1.PC端

登陆滑块验证:我们看到阿里的滑块验证很简洁,没有类似那种拼图的样式,所以研究其轨迹方程不是重点。经充足时间研究整个过程,发现是使用senlenium时,其打开的chrome driver被识别为自动软件登陆,原本的一个属性值为true,将其改为false即可实现滑块验证。

先上结果,如图:

可以看到验证通过,在这里,navigator.webdriver即是判断是否是自动登陆的一个属性值,淘宝也是基于此判断的。刚开始时,笔者尝试直接将navigator.webdriver赋值进行改变,可尝试过后发现,navigator.webdriver值没有发生变化,如图:

我们发现并未通过,原因是因为webdriver的属性为只读,无法通过赋值来简单改变,需要借助Object.defineProperty()方法,即可通过验证。

Object.defineProperties(navigator,{webdriver:{get:() => false}});

根据其他博客参考,淘宝的滑块验证无需太多轨迹方程,因为业务只需截图记录即可,接下来没有研究,将矛头对准了selenium的手机端。

2.手机端

相对PC端而言,手机端无需登陆,而且防御措施也比较少,可以直接进行访问。笔者在这里通过改变请求头user-agent以及deviceMetrics,配置其手机端的width,height参数实现了selenium登陆手机端(只配置user-agent不行,目前没有确定原因,欢迎一起交流讨论),设置如下:

def __init__(self):self.WIDTH = 320self.HEIGHT = 640self.PIXEL_RATIO = 3.0self.UA = 'Mozilla/5.0 (Linux; Android 4.1.1; GT-N7100 Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/35.0.1916.138 Mobile Safari/537.36 T7/6.3'
def start(self):    mobileEmulation = {"deviceMetrics": {"width": self.WIDTH, "height": self.HEIGHT, "pixelRatio": self.PIXEL_RATIO},"userAgent": self.UA}options = webdriver.ChromeOptions()options.add_experimental_option('mobileEmulation', mobileEmulation)driver = webdriver.Chrome(chrome_options=options)

通过driver.get(url),得到了如下界面:

但是这里发现,用鼠标点选规格,依然无法选中(如图,点选为蓝色,无法展开)。

这里的原因仍是因为淘宝识别出了你是用webdriver来自动打开的,故方法与上述一致,通过js改变即可。

有时会发现传入了js仍然无法成功的情况,原因是因为你在get(url)之后才改变的js,这时淘宝已经判断完毕是否是webdriver,此时属性即使变为false也没有卵用,因此需要在get(url)之前,就将js传入并改变。接下来就可以通过xpath点开,再由xpath进行选择商品,并截图,如图:

期间得到了“慵懒的饭桶”,以及大壮老师的一些帮助,后续优化后再更新,欢迎拍砖~

淘宝手机端-selenium破解过程详解相关推荐

  1. 只用div+CSS做淘宝手机端首页

    div+CSS教你做出淘宝手机端首页 为什么只用div做网页 网页代码 网页效果展示 需要更全面的SEO优化网站软件工具及软件操作文档可以联系博主,会有更详细的教程,系统的帮助您的网站关键词40天上百 ...

  2. 复制淘宝手机端页面案例

    <!DOCTYPE html> <html><head><meta charset="utf-8" /><title>淘 ...

  3. 淘宝手机端SEO优化,如何提升淘宝手机端搜索排名

    最近在研究淘宝SEO, 店铺名  欧式沙发520. 店铺地址http://shop113208383.taobao.com/ 在淘宝搜索 "韩式客厅小户型现代沙发" 在广东地区,P ...

  4. 淘宝手机端详情页的设置

    图片设置的大小宽度在480px-620px,高度在960px,格式为jpg,png,jif都可,字号大于等于30,因为字号太小,放在手机上可能就看不清楚了 手机端描述你可以选择这个选项,然后就可以上传 ...

  5. 淘宝 Android 帧率采集与监控详解

    APM 提供帧率的相关数据,即 FPS(Frames Per Second) 数据.FPS 在一定程度上反映了页面流畅程度,但 APM 提供的 FPS 并不是很准确.恰逢手淘低端机性能优化项目开启,亟 ...

  6. 手机端安装charles证书详解

    Charles介绍: Charles其实是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的.该软件是用Java写的,能够在Windows,Mac,Linux上使用 ...

  7. QQ.阿里旺旺.淘宝.在线网页链接代码及详解

    让他人在网页中可直接跟你的QQ或旺旺进行联系. 你可直接到官网去生成代码.简单.方便.相信都能上网的你了对这不会有难度的.认识字的就行.赶紧去吧. 1>阿里旺旺官网.http://alitalk ...

  8. 5e怎么绑定一键跳投_怎么开通淘宝亲情账号 淘宝亲情账号申请步骤【详解】

    据官方消息,淘宝将在2月1日上线"亲情账号"功能.那么 淘宝亲情账号怎么开通?在哪申请? 下面为大家介绍下,一起来看看. 亲情账号 用户在淘宝账号中可以创建"父亲&quo ...

  9. 自己写的一个类淘宝手机端图片浏览双指缩放的功能

    该组件已被弃用 如有需求请选择最新组件 最新组件previewImage-mobile-地址 新组件-仿微信js-sdk wx.previewImage JavaScript实现,支持图片预览,滑动切 ...

最新文章

  1. 使用函数PIVOT现实数据行转列
  2. 【GoWeb开发实战】Cookie
  3. 模拟注册用户,按照以下要求实现相关功能:
  4. 机器学习从理论到工程的第二步-开发环境与工具篇(下)
  5. react全局状态管理_react状态管理redux
  6. 电脑的虚拟服务器位置,如何配置基于IP地址的虚拟主机
  7. 明显调用的表达式前的括号必须具有函数类型_Chisel(二) Scala语法 变量与函数...
  8. Client.Timeout exceeded while awaiting headers
  9. spring框架的深入理解
  10. Activity中四大启动模式
  11. python excel处理模块_Python(00):openpyxl模块处理Excel文件
  12. Python 数据结构与算法——拓扑排序
  13. 1024程序员节,别人家的公司真香!羡慕ing~
  14. 软件测试如何制作简历?
  15. HelloWord你的第一个rainmeter皮肤
  16. html背景为视频教程,HTML+CSS入门 如何将视频设置为网页背景
  17. 前端框架 — Bootstrap
  18. h5 app跳转客服咨询 临时会话 (没有开通在线咨询、无法会话)
  19. 电脑触摸屏无法使用、失灵解决办法
  20. python编程书在线阅读_Python编程完全入门教程

热门文章

  1. 微软杀疯了!全家桶嵌入ChatGPT,云平台Azure强到发指
  2. VoWiFi异常场景介绍
  3. Unexpected end of stream 溯源
  4. python读取大文件目录_python简单读取大文件的方法
  5. 城市社会经济专项规划之生态产业规划
  6. 云计算势必会有广泛的应用
  7. MFC-画笔与画刷的使用
  8. 找出符合规则为ABAB,ABCABC的QQ号码
  9. 公用一个由器被别人用psp终结者限速了怎么
  10. 消灭星星 高分算法(思路,待开发)