您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:python pyppeteer 破解京东滑块功能的代码

51自学网 2021-10-30 22:46:58
  python
这篇教程python pyppeteer 破解京东滑块功能的代码写得很实用,希望能帮到您。

Pyppeteer简介

介绍Pyppeteer之前先说一下Puppeteer,Puppeteer是谷歌出品的一款基于Node.js开发的一款工具,主要是用来操纵Chrome浏览器的 API,通过Javascript代码来操纵Chrome浏览器,完成数据爬取、Web程序自动测试等任务。

在上篇文章给大家详细介绍了python爬虫 Pyppeteer使用方法解析 ,感兴趣的朋友可以点击查看。

今天给大家介绍python pyppeteer 破解京东滑块功能,具体代码如下所示:

import asyncioimport randomimport cv2from pyppeteer import launchfrom urllib import request # 滑块的缺口距离识别async def get_distance(): img = cv2.imread('image.png', 0) template = cv2.imread('template.png', 0) res = cv2.matchTemplate(img, template, cv2.TM_CCORR_NORMED) value = cv2.minMaxLoc(res)[2][0] distance = value * 278/360 return distance async def main(): browser = await launch({  'headless': False,# 需要设置一个路径  'userDataDir': r'E:/mj',  'args': ['--no-sandbox', '--window-size=1366,768'], }) page = await browser.newPage() await page.setViewport({'width': 1366, 'height': 768}) await page.goto('https://passport.jd.com/login.aspx') await page.waitFor(1000) await page.click('div.login-tab-r') await page.waitFor(1000)  # TODO 模拟人工输入用户名、密码 输入自己的账号密码 await page.type('#loginname', 'yazhishaw',     {'delay': random.randint(60, 121)}) await page.type('#nloginpwd', '123456',     {'delay': random.randint(100, 151)}) await page.waitFor(2000) await page.click('div.login-btn') await page.waitFor(3000) # 模拟人工拖动滑块、失败则重试 while True:  if await page.J('#ttbar-login'):   print('登录成功!')   await page.waitFor(6000)   break  else:   image_src = await page.Jeval('.JDJRV-bigimg >img', 'el => el.src')   request.urlretrieve(image_src, 'image.png')   template_src = await page.Jeval('.JDJRV-smallimg >img', 'el => el.src')   request.urlretrieve(template_src, 'template.png')   await page.waitFor(3000)   el = await page.J('div.JDJRV-slide-btn')   box = await el.boundingBox()   await page.hover('div.JDJRV-slide-btn')   distance = await get_distance()   await page.mouse.down()   await page.mouse.move(box['x'] + distance + random.uniform(30, 33), box['y'], {'steps': 20})   await page.waitFor(random.randint(300, 700))   await page.mouse.move(box['x'] + distance + 29, box['y'], {'steps': 20})   await page.mouse.up()   await page.waitFor(3000) asyncio.get_event_loop().run_until_complete(main())

到此这篇关于python pyppeteer 破解京东滑块功能的代码的文章就介绍到这了,更多相关python pyppeteer 京东滑块内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


python操作mysql、excel、pdf的示例
python 制作手机归属地查询工具(附源码)
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。