京东自动登录

2023-11-04

## 京东自动登录

注:本文所做操作皆以京东web为例

包含:xpath,splinter,ocr

遇到的坑:  

1. 登录页面通过查看网页元素,能看到账户,密码唯一id,但是执行

   ```
   browser.fill("loginname", name)  # 填写账户密码
   browser.fill("nloginpwd", passwd)
   ```

   报错信息

   ```
   selenium.common.exceptions.InvalidElementStateException: Message: invalid element state: Element is not currently interactable and may not be manipulated 
   ```

   实际原因如下

   ```
   元素你看得到,但是代码要操作的元素是跟随鼠标变更样式的,或者其他条件实时变更的,导致代码不能“看见”。这种情况就需要通过js操作dom元素来适应场景。 
   ```

   经过分析,查看网页源代码可以看到,实际被js代码渲染,可能更改,所以一定要保持页面如真是用户操作一样,方可。所以添加如下代码,解决问题

   ```
       browser.click_link_by_text("账户登录")#使login,passwd可见
       browser.fill("loginname", name)  
       browser.fill("nloginpwd", passwd)
   ```

   2.京东验证吗

   注:京东验证码阻塞了俩天,通过搜索知道京东验证码由三部分组成;

   ```
   acid,uid,yys三部分拼装而成,acid,uid为固定值,可以从页面直接抓取,yys为随机生成的13为字符串,拼装而成的验证码例如url=https://authcode.jd.com/verify/image?a=1&acid=b6ff1eca-e3e5-4692-904b-be35da5f0752&uid=b6ff1eca-e3e5-4692-904b-be35da5f0752&yys=5436761901589
   ```

    过程1. requests 请求url获取一直ok,通过requests返回值result, 查看result.text发现返回的为京东首页的html网页内容,显然有误,查看返回302代码,重定向。定位问题,应该是访问url,ok.requests headers 有误。然后添加了cookie,返回200

    过程2.  返回200,查看返回数据,发现一堆乱码,以为是编码问题,打印result.encoding,返回None,应该不是编码问题。经搜索,返回如果是图片,应该是二进制数据,所以乱码。尝试保存数据到硬盘,发现验证码图片保存成功。

    过程3. 调用百度ocr接口,实现验证码识别,准确度不高,有待提高

代码地址:

```
https://github.com/wanderingpuppy/seckill
```

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

京东自动登录 的相关文章

  • 手把手教你如何在Linux上彻底删除mysql

    1 先查看mysql安装情况 rpm qa grep i mysql 进入到你装mysql文件目录里面 cd usr local mysql 2 删除上图所有信息 rpm ev mysql community libs 5 7 32 1 e
  • postgre写sql时使用别的方法代替IN子句以提高查询效率

    两种方法 自测都好使 60s的执行时间缩短到了2s左右 我遇到的问题大概是这样 比如说我写了个sql select from student where name in lilei hanmeimei 这就是在student表查名字是lil
  • 一文看尽深度学习中的15种损失函数

    点击上方 计算机视觉工坊 选择 星标 干货第一时间送达 作者丨CVHub 来源丨CVHub 编辑丨极市平台 导读 本文详细介绍了深度学习中的各种损失函数的优点和局限性 在机器学习中 损失函数是代价函数的一部分 而代价函数则是目标函数的一种类
  • 常用断言方法

    1 断言是否相等 assertEqual a b msg 测试失败时打印的信息 断言a和b是否相等 相等则测试用例通过 assertNotEqual a b msg 测试失败时打印的信息 断言a和b是否相等 不相等则测试用例通过 2 断言是

随机推荐

  • 运行vue项目时报错defineConfig is not a function

    我遇到的这个问题的场景是这样的 我拉了一个比较早的项目是两年前的 那时候用的vue版本比较的 然后我直接在这个项目中配置代理 添加vue config js文件如下 然后运行vue项目就报错 个人感觉应该是vue cli service版本
  • MySQL:JDBC

    什么是JDBC JDBC Java DataBase Connectivity 称为 Java数据库连接 它是一种用于数据库访问的应用程序 API 由一组用Java语言编写的类和接口组成 有了JDBC就可以 用统一的语法对多种关系数据库进行
  • Tomcat7源码环境搭建

    一 下载Tomcat7源码 从官网上下载Tomcat源码 http mirror bit edu cn apache tomcat tomcat 7 v7 0 70 src apache tomcat 7 0 70 src zip 下载之后
  • vscode配置java环境,纯手把手教,有手就行

    vscode配置java环境 1 下载JDK Java Development Kit java开发工具 进入官网下载https www oracle com java technologies downloads 配置环境变量 检查电脑是
  • 08_Pandas提取含有指定字符串的行(完全匹配,部分匹配)

    08 Pandas提取含有指定字符串的行 完全匹配 部分匹配 以下内容 如何使用pandas提取含有指定字符串的行的方法进行解释说明 行的提取 选择 方法 完全匹配 部分匹配 str contains 包含一个特定的字符串 参数na 缺少值
  • 单片机——串口初探及串口+中断

    简介 设备间接线通信的一种方式 数据一位一位地顺序传送 双向通信 全双工 全双工 A向B发消息时 B也可以向A发消息 半双工 A向B发消息时 B不可以向A发消息 只有当A发完时 B才可以向A发消息 传送速度较慢 常用串口的电器标准协议 RS
  • CMMI资质查询

    http www cmmirz com https sas cmmiinstitute com pars pars aspx
  • C#学习之System.Collections.Generic 与 System.Collections 记录

    1 了解C 集合 System Collections 命名空间 System Collections 命名空间包含接口和类 这些接口和类定义各种对象 如列表 队列 位数组 哈希表和字典 的集合 类 类 说明 ArrayList 使用大小可
  • 自动按参数首字母排序参数

    public static string FormatBizQueryParaMap Dictionary
  • 关于Spring和SpringBoot中动态代理jdk以及Cglib 的区别和实现

    springboot2 x默认使用的代理是cglib代理 因为项目优化 打算写个日志的切面类 于是起了个springboot 工程 在这里面测试 结果在springboot 里面测试正常 能正确打印日志 但是把代码复制到实际项目中 在进入切
  • C++私有成员变量被对象直接访问

    C 访问控制 关键字private 它描述了对类成员的访问控制 使用类的对象方法可以直接访问私有成员函数和变量 类的对象即实例只能通过公共成员函数来访问私有变量和私有成员函数 因此公有成员函数成为对象的私有变量访问的桥梁 在c 中 在类的成
  • javaScript基础面试题 ---宏任务微任务

    宏任务微任务 一 为什么JS是单线程语言 二 JS是单线程 怎样执行异步代码 1 JS是单线程语言 2 JS代码执行流程 同步执行完 再进行事件循环 微任务 宏任务 3 清空所有的微任务 再执行宏任务 4 微任务 Promise then
  • 安装MinGW-w64

    1 下载mingw工具 Windows系统下安装配置 MinGW w64 开发环境 https blog csdn net u010429831 article details 106766165 MinGW w64 下载链接 https
  • 常见的Java报错和原因

    一 常见的java异常分类 Throwable类有两个直接子类 1 Exception 出现的问题是可以被捕获的 2 Error 系统错误 通常由JVM处理 二 被捕获的异常分类 1 Check异常 派生自Exception的异常类 必须被
  • C语言的指针

    C语言的指针 一 指针的优先级 括号 的优先级最高 其次是数组 然后是剩余的 最后是类型 指针p与优先级高的先结合 对于比较复杂的指针 结合后就视为一个整体temp 然后再与剩下的结合进行分析 int p p是一个普通的int型变量 p先与
  • kafka安装和简单测试

    Kafka的安装和简单实例测试 厦大数据库实验室博客 ps 上边文章的kafka版本有点老 是0 10 1 0版本的 最新的kafka版本启动和创建topic等命令有所改变 核心概念 下面介绍Kafka相关概念 以便运行下面实例的同时 更好
  • 电脑xinput1_3.dll丢失的解决方法?哪个解决方法更简单

    最近在打开软件或者游戏的时候 电脑提示xinput1 3 dll文件丢失的错误 这个问题导致我无法运行某些游戏和应用程序 通过一番尝试和研究 我找到了一些修复xinput1 3 dll文件丢失的方法 并在此分享给大家 首先 我了解到xinp
  • 基于MATLAB的针对LSTM的时间序列分析预测,可进行多步预测,其中训练结果,测试结果,迭代过程,预测结果如图。模型已调试完毕,替换自己的数据可直接运行。

    基于MATLAB的针对LSTM的时间序列分析预测 可进行多步预测 其中训练结果 测试结果 迭代过程 预测结果如图 模型已调试完毕 替换自己的数据可直接运行 哔哩哔哩工房 bilibili com https gf bilibili com
  • 生成子集——二进制法

    我的个人博客 逐步前行STEP 用二进制位的0和1表示集合中是否存在该元素 要生成0n的子集 先生成0n的二进制序列 这些序列的0 1位正好可以对应一个子集中全集在该位置上的元素是否存在 将其作为子集中存在的元素的标记 输出对应元素 inc
  • 京东自动登录

    京东自动登录 注 本文所做操作皆以京东web为例 包含 xpath splinter ocr 遇到的坑 1 登录页面通过查看网页元素 能看到账户 密码唯一id 但是执行 browser fill loginname name 填写账户密码