返回顶部
首页 > 资讯 > 后端开发 > Python >python实现二维码扫码自动登录淘宝
  • 346
分享到

python实现二维码扫码自动登录淘宝

淘宝自动登录二维码 2022-06-04 18:06:07 346人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

一个小项目自动登录淘宝联盟抓取数据,由于之前在GitHub上看过类似用python写的代码因此选择用Python来写,第一次用Python正式写程序还是被其“简单”所震撼,当然用的时候还是对其(2.7版)编

一个小项目自动登录淘宝联盟抓取数据,由于之前在GitHub上看过类似用python写的代码因此选择用Python来写,第一次用Python正式写程序还是被其“简单”所震撼,当然用的时候还是对其(2.7版)编码、迁移环境等问题所困扰,还好后来都解决了。

言归正传,抓取淘宝联盟的数据首先要解决的就是登录的问题,之前一般会碰到验证码的困扰,现在支持二维码扫码登录反而简单了,以下是登录的Python代码,主要是获取二维码打印,然后不断的检查扫码状态,如果过期了重新请求二维码(主要看逻辑,由于有些通用方法做了封装所以不保证能直接执行)


def getQRCode(enableCmdQR):
  payload = {'_ksTS': str(time.time()), 'from': 'alimama'}
  qrCodeObj = utils.fetchapi('https://qrlogin.taobao.com/qrcodelogin/generateQRCode4Login.do', payload,
                "JSON", None, True, True)
 
  print(qrCodeObj)
  utils.printQRCode('Http:' + qrCodeObj['url'], enableCmdQR)
  lgToken = qrCodeObj['lgToken']
  return lgToken
 
 
def login(enableCmdQR=False):
  lgToken = getQRCode(enableCmdQR)
  code = 0
  successLoginURL = ""
  while code != 10006:
    payload = {'lgToken': lgToken,
          'defaulturl': 'http%3A%2F%2Flogin.taobao.com%2Fmember%2Ftaobaoke%2Flogin.htm%3Fis_login%3D1&_ksTS=' + str(
            time.time())}
 
    rObj = utils.fetchAPI('https://qrlogin.taobao.com/qrcodelogin/qrcodeLoginCheck.do', payload, "json", True,
               False)
    code = int(rObj['code'])
    if 10000 == code:
      # print("请扫描二维码登录")
      continue
    elif 10001 == code:
      print("已扫描二维码,请在确认登录")
    elif 10004 == code:
      print("已过期请重新扫描")
      login()
    elif 10006 == code:
      successLoginURL = rObj["url"]
      print("登录成功,正在跳转")
    else:
      print("未知错误,退出执行")
      sys.exit(0)
 
    time.sleep(5)
 
  print "登录成功跳转:" + successLoginURL
  r = utils.fetchAPI(successLoginURL, None, "raw", True, False, True)
  utils.fetchAPI(r.headers['Location'], None, "raw", True, True, False)

解决登录问题接下去就要解决保存状态的问题,Python的Requests库非常强大,如果简单的话可以直接使用request.session来进行会话操作,但由于项目中的很多操作是异步的因此需要解决cookie的存储和读取,使用pickel进行对像的序列化和反序列化。其中保存cookie默认用增量的方式进行更新


def save_cookies(cookies, overWrite=False):
  try:
    currentCookie = requests.utils.dict_from_cookiejar(cookies)
    if len(currentCookie) < 1:
      return
    oldCookie = requests.utils.dict_from_cookiejar(load_cookies())
    with open(config.COOKIE_FILE, 'w') as f:
      if not overWrite:
        cookieDict = dict(oldCookie, **currentCookie)
      else:
        cookieDict = requests.utils.dict_from_cookiejar(cookies)
      pickle.dump(cookieDict, f)
      print 'Saved cookie'
      print cookieDict
      f.close()
  except:
    print 'Save cookies failed', sys.exc_info()[0]
    sys.exit(99)


def load_cookies():
  try:
    with open(config.COOKIE_FILE, 'r') as f:
      cookies = requests.utils.cookiejar_from_dict(pickle.load(f))
      f.close()
  except:
    cookies = []
  return cookies

封装好之后,在requests.Session请求时加载cookie并保存cookie


s = requests.Session()
# 统一请求API
def fetchAPI(url, params=None, resultFORMat="text", isNeedCookie=True, allowRedirects=True, saveCookie=False,
       method='GET'):
  try:
    cookies = load_cookies()
    if 'POST' == method:
      response = s.post(url, data=params, headers=config.Headers, cookies=cookies)
    else:
      response = s.get(url, params=params, headers=config.Headers, cookies=cookies,
               allow_redirects=allowRedirects)

    if "json" == resultFormat:
      result = response.json()
    elif "raw" == resultFormat:
      result = response
    else:
      result = response.text

    # if saveCookie:
    # print 'save cookie:' + str(response.cookies)
    save_cookies(response.cookies)

    return result

  except Exception, e:
    print e
    return False

这两步做好之后基本后续的请求就直接使用统一的API请求方法即可,效果也非常不错,运行效果截图:

查看图片

当然还有一个问题未解决:如何在session过期之后如何自动重新申请(不确定淘定是否支持),由于淘宝是用统一登录而且是独立的服务因此通过浏览器自动刷新或者请求过程中不断去更新cookie都没有获得服务器方更新的票据,不知道这一块大家有没有可以提供的思路。

--结束END--

本文标题: python实现二维码扫码自动登录淘宝

本文链接: https://lsjlt.com/news/13893.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python实现二维码扫码自动登录淘宝
    一个小项目自动登录淘宝联盟抓取数据,由于之前在Github上看过类似用Python写的代码因此选择用Python来写,第一次用Python正式写程序还是被其“简单”所震撼,当然用的时候还是对其(2.7版)编...
    99+
    2022-06-04
    淘宝 自动登录 二维码
  • SpringBoot怎么实现二维码扫码登录
    本篇内容介绍了“SpringBoot怎么实现二维码扫码登录”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、手机扫二维码登录的原理二维码扫码...
    99+
    2023-07-05
  • SpringBoot实现二维码扫码登录的原理及项目实践
    目录一、手机扫二维码登录的原理二、SpringBoot如何实现二维码扫码登录三、总结手机二维码扫码登录已经成为了现代互联网时代的一种普遍的登录方式。它的出现,极大地方便了用户登录的流...
    99+
    2023-05-14
    SpringBoot 二维码扫码登录 SpringBoot 扫码登录
  • Angular.js实现扫码枪扫码并生成二维码
    目录前言扫码枪扫码生成二维码前言 举个例子: 商品都有自己的序列号 SN。那么当我们将这些商品打包的时候,我们就需要生成一份商品的 SN 清单,将其贴在箱子的表面以查看。但是冗长的...
    99+
    2023-03-08
    Angular.js生成二维码 Angular.js扫码枪扫码
  • Flutter实现二维码扫描
    本文实例为大家分享了Flutter实现二维码扫描的具体代码,供大家参考,具体内容如下 配置安卓访问权限: 1. 文件配置路径android\app\src\main\AndroidM...
    99+
    2024-04-02
  • Android studio 实现生成二维码和扫描二维码
    效果图 build.gradle(:app)添加依赖 dependencies { implementation 'com.google.zxing:core:3.3.3' imple...
    99+
    2023-09-30
    android studio android ide
  • Android实现二维码扫描并登陆网页
    之前写过一个二维码扫描demo,用的Zxing的框架,点击下载,后续扫描二维码中出现一些问题,比如解决压缩图片,调整扫描窗口大小等等。后续单位要求做扫描登录实现,发现难点就是怎...
    99+
    2022-06-06
    二维码扫描 登陆 二维 二维码 Android
  • 浅谈js二维码扫码登录是什么原理
    目录二维码登录的本质认识二维码系统认证机制扫描二维码登录的一般步骤大概流程二维码准备扫描状态切换状态确认总结前几天看了极客时间一个二维码的视频,写的不错,这里总结下 在日常生活中,二...
    99+
    2024-04-02
  • css如何实现二维码扫码框
    这篇文章主要介绍css如何实现二维码扫码框,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!实现效果:代码如下:html:<div class="img-box"> &...
    99+
    2023-06-08
  • Flutter实现扫二维码功能
    本文实例为大家分享了Flutter实现扫二维码功能的具体代码,供大家参考,具体内容如下 首先在pubspec.yaml中添加: dependencies:   qrscan: ^0....
    99+
    2024-04-02
  • Angular.js如何实现扫码枪扫码并生成二维码
    这篇文章主要讲解了“Angular.js如何实现扫码枪扫码并生成二维码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Angular.js如何实现扫码枪扫码并生成二维码”吧!扫码枪扫码这个比较...
    99+
    2023-07-05
  • python中扫描条形码和二维码的实现代码
    简单说明,代码太难懂,先做此记录留待来日在看 步骤: 1,pip install pyzbar安装好该模块。pyzbar模块是Python一个开源库用于扫描和识别二维码信息。 2,...
    99+
    2024-04-02
  • java:实现用户扫码二维码自动跳转指定链接功能
    0. 引言 近来接到要实现链接转二维码的需求,通过提供二维码给用户,让用户扫描后自动访问指定的H5页面,从而实现业务流转,这样的功能其实在其他很多场景也会用到,比如资产管理系统中,扫码资产二维码,从而...
    99+
    2023-09-07
    java 开发语言
  • Python中如何实现MOOC扫码登录
    目录1、基本原理2、代码实现1、访问网站扫码登录页,并下载二维码2、模拟轮询3、弹出二维码,扫码登录4、带上token请求资源总结1、基本原理 访问网站扫码登录页,网站给浏览器返回一...
    99+
    2023-01-06
    Python实现扫码 MOOC扫码登录 Python MOOC扫码登录
  • vue实现二维码扫码功能(带样式)
    需求: 利用vue实现二维码扫描; 插件: QRCodeReader; 插件下载 npm install --save vue-qrcode-reader 注意: 需要在https协...
    99+
    2024-04-02
  • python+selenium 实现扫码免密登录示例代码
    目录一、需求描述二、首先扫码登录获取cookies保存到本地未后面免密登录做准备三、初始化浏览器四、获取本地保存的cookies实现登录一、需求描述 web 自动化测试/python...
    99+
    2024-04-02
  • Flutter如何实现扫二维码功能
    这篇文章主要为大家展示了“Flutter如何实现扫二维码功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Flutter如何实现扫二维码功能”这篇文章吧。具体内容如下首先在pubspec.yam...
    99+
    2023-06-29
  • Java实现微信扫码登录
    微信扫码登录 1. 授权流程说明第一步:请求 code第二步:通过 code 获取 access_token第三步:通过 access_token 调用接口 2. 授权流程代码3...
    99+
    2023-09-01
    微信 java
  • Python调用PC摄像头实现扫描二维码
    目录简介源代码源代码说明效果如下所示简介 使用PC摄像机扫描二维码可以有很多应用场景,例如: 支付宝、微信支付等移动支付方式需要使用二维码进行支付,PC摄像机可以扫描这些支付二维码,...
    99+
    2023-05-19
    Python调用摄像头扫描二维码 Python调用摄像头 Python 扫描二维码
  • 通过vue方式实现二维码扫码功能
    提示 这个插件只能在https协议下才能访问,http协议不好使,最好用vue2,vue3容易报错!!!!! 描述 通过vue的方式,实现扫码功能 参考文档:vue-qrcode-r...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作