1. 首页 > 手游资讯

高效实现淘宝账号登录的Python脚本诀窍 如何提高淘宝网账户的安全性

淘宝登录就比较复杂,为什么说复杂呢?因为淘宝登录涉及参数多且请求不止一次!我们就先来讲讲淘宝登录的流程,先把流程原理搞懂,再去敲代码,这样大家就容易理解!

一、淘宝登录流程

为了便于大家理解,画了一个非标准的淘宝登录请求时序图

淘宝ua参数:ua(User-Agent)故名用户代理,淘宝的ua参数加入了浏览器、ip、电脑、时间等信息,然后加密生成,在很多地方使用,不仅仅是登录!

上图是比较详细的流程图,从代码层面考虑将模拟登录淘宝分为以下四个步骤:

1、输入用户名后,浏览器会向淘宝(taobao.com)发起一个post的请求,判断是否出现滑块验证!

2、用户输入密码后,浏览器向淘宝(taobao.com)又发起一个post请求,验证用户名密码是否正确,如果正确则返回一个token。

3、浏览器拿着token去阿里巴巴(alibaba.com)交换st码!

4、浏览器获取st码之后,拿着st码获取cookies,登录成功

这里也许有同学会提出疑问:为什么淘宝(taobao.com)验证通过之后还要拿着 token去阿里巴巴(alibaba.com)交换st码呢? 这个我们放后面讲!

二、模拟登录实现

上面我们只讲了大概的登录流程,这里猪哥会先详细讲解下每一步的操作,然后再贴出实现代码!

1.判断是否需要验证码

目前我们在登录淘宝的时候,大多数情况下是不会出现滑块验证码,猪哥尝试了很多次的登录退出也只是在中间出现过一次,那究竟是什么在控制是否需要滑块验证码的呢?

从上图可以看出,当输入用户名后,浏览器就会发起一个post请求,来验证是否需要出现滑块验证码,如果返回true,滑块验证码则出现!否则不出现,一般是不会出现!

图中我们可以看到这次post请求上传了两个参数:username、ua!

ua为浏览器、ip、设备信息等多信息加密参数,所以猜想淘宝的验证码是否出现不仅仅从账号角度,还有ip、设备等角度!

举个例子:某台设备可能出现登录过大量的账号,这时候淘宝就可以从ua参数中获取设备号,然后对该设备进行限制!

知道了流程和请求链接及参数之后,我们就可以用代码来请求了!

2.验证用户名密码

这里一步也就是上面时序图图中的第5步:请求登录,这里会将用户名、ua参数、加密密码等30十几个参数post到淘宝(taobao.com)去验证。

看看请求结果!

可以看到申请st码链接后面带了一个token,具体token是干什么用的后面我们再分析!

3.申请st码

上面我们已经申请到了淘宝(taobao.com)的token,这一步就是用token来换取st码。

到这里很多人可能会有疑问:为什么淘宝登录需要这么麻烦呢?直接在 taobao.com 登录不就可以吗?为什么要先在taobao验证用户名密码,通过之后再去 alibaba.com 换取st码登录呢?

任何公司的框架都是慢慢演变的结果,我想最开始的淘宝登录肯定没这么复杂。但是随着阿里巴巴的慢慢壮大,很多事业线都划分开来,但是这些事业线之间又有关联性,比如用户登录了淘宝账号之后天猫就不需要再登录了呢?(注意淘宝和天猫的顶级域名不同,所以不能共享cookis)为了解决这个问题,单点登录就出现了。

单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。——百度百科

很多大企业几乎都有做单点登录,那阿里的单点登录系统肯定是由母公司阿里巴巴(alibaba.com)来做啦,所有子公司去调用母公司接口!

我们再回来分析淘宝登录为何要如此复杂就很好理解了:用户数据在淘宝这里,所以需要现在淘宝(taobao.com)验证用户名和密码,验证通过生成一个token,浏览器拿着token去和阿里巴巴(alibaba.com)申请单点登录码(st码),阿里巴巴收到请求验证token通过则返回st码,所以用token换st码的原因就在于单点登录!

理解了设计原理之后,代码实现起来就很清晰了!

4.使用st码登录

成功获取st码之后我们就可以来登录了,这一步是通过st码获取登录的cookies。

到这里我们就已经模拟登录淘宝成功了!

5.获取淘宝昵称

其实上面我们就已经登录淘宝成功并返回用户主页的链接,我们为了进一步验证登录成功,就请求一下淘宝用户主页,顺便把淘宝昵称提取出来吧!

三、总结

整体讲完之后我们来稍微总结一下吧,主要从代码结构和存在的问题两个方面说下:

1.代码结构

来放出一张代码结构图,让大家直观了解

这就是我们前面说过的模拟登录淘宝的四个步骤,不过这里我们是用代码实现了!

用户评论

class="comment-item">

class="comment-item-head">

class="comment-user"> 抚涟i

class="comment-item-body">

哇,这篇文章写的太好啦!我一直想要知道如何在程序里把淘宝模拟成登陆,看看你的代码确实眼高手低了点,我估计自己要看很久才能弄懂…

    有14位网友表示赞同!

class="comment-item">

class="comment-item-head">

class="comment-user"> 拉扯

class="comment-item-body">

这个思路很不错啊!如果能把淘宝的接口文档详细分析一遍,再加上一些代码案例讲解,那将更加实用。现在我只懂一点点Python,感觉有点难度。

    有14位网友表示赞同!

class="comment-item">

class="comment-item-head">

class="comment-user"> 浅笑√倾城

class="comment-item-body">

这篇文章很有帮助,终于解决了我一直想用python模拟登录淘宝的问题了!以前一直觉得这太复杂了,没想到只要掌握几个关键技术就能够实现。

    有18位网友表示赞同!

class="comment-item">

class="comment-item-head">

class="comment-user"> 无寒

class="comment-item-body">

这个方法太牛了吧!直接模拟登陆,简直是黑客帝国的感觉!不过需要提前了解一下淘宝的安全机制,避免被封啊。

    有10位网友表示赞同!

class="comment-item">

class="comment-item-head">

class="comment-user"> 敬情

class="comment-item-body">

我个人不太建议这样做,淘宝的网站结构和安全措施都在不断变化,这种模拟登录方式容易出错或者失效,而且在法律层面可能存在风险。还是尽量使用官方提供的接口比较靠谱。

    有7位网友表示赞同!

class="comment-item">

class="comment-item-head">

class="comment-user"> 执笔画眉

class="comment-item-body">

我曾经试过用 python 模拟登陆淘宝,结果发现验证码识别太难了,每次都失败…这个文章给我的灵感挺多的!

    有19位网友表示赞同!

class="comment-item">

class="comment-item-head">

class="comment-user"> 何必锁我心

class="comment-item-body">

这篇文章讲解的非常清晰,小白也能看得懂,感谢作者分享!不过我还是想问问,如果模拟登录后,还可以直接浏览商品信息吗?

    有12位网友表示赞同!

class="comment-item">

class="comment-item-head">

class="comment-user"> 墨染天下

class="comment-item-body">

淘宝的数据结构变化太频繁了,这种模拟登录的方式真的有效性不高。现在官方api已经很完善了,应该优先考虑使用官方接口进行开发啊。

    有19位网友表示赞同!

class="comment-item">

class="comment-item-head">

class="comment-user"> 秒淘你心窝

class="comment-item-body">

能不能说说Python 模拟登录淘宝的一些常见问题和解决方案,比如验证码识别、防反爬等等?

    有8位网友表示赞同!

class="comment-item">

class="comment-item-head">

class="comment-user"> 强辩

class="comment-item-body">

这个方法很有意思,可以尝试在学习爬虫的时候应用一下。感觉以后可以用python模拟登陆很多网站进行数据抓取操作!

    有11位网友表示赞同!

class="comment-item">

class="comment-item-head">

class="comment-user"> 生命一旅程

class="comment-item-body">

对于学习Python的入门者来说,这种模拟登录淘宝的方法难度可能有点大,可能需要一些基础的编程知识和网络安全了解才能上手。

    有14位网友表示赞同!

class="comment-item">

class="comment-item-head">

class="comment-user"> 信仰

class="comment-item-body">

我对这款工具很感兴趣,期待进一步学习它的使用方法。希望作者可以分享一下更多实战应用案例。

    有9位网友表示赞同!

class="comment-item">

class="comment-item-head">

class="comment-user"> 墨城烟柳

class="comment-item-body">

这个方法太厉害了,以后可以用python模拟登录网站获取一些信息,比如查看网页的内容、图片等,非常实用!

    有9位网友表示赞同!

class="comment-item">

class="comment-item-head">

class="comment-user"> 青衫故人

class="comment-item-body">

Python 模拟登录淘宝需要特别注意数据安全问题,不能随意泄露用户的账号密码信息。作者应该重点强调一下这些安全隐患。

    有14位网友表示赞同!

class="comment-item">

class="comment-item-head">

class="comment-user"> 断桥残雪

class="comment-item-body">

我对这个工具的实现方式很有兴趣,能否分享一下具体代码结构和逻辑分析?我想深入了解一下它的工作原理。

    有11位网友表示赞同!

class="comment-item">

class="comment-item-head">

class="comment-user"> 北朽暖栀

class="comment-item-body">

淘宝的用户数据非常庞大,这种模拟登录的方法可能会对服务器造成一定压力,需要考虑网站的安全负荷问题。

    有14位网友表示赞同!

class="comment-item">

class="comment-item-head">

class="comment-user"> 々爱被冰凝固ゝ

class="comment-item-body">

用Python模拟登录淘宝确实可以实现一些特定的功能,比如自动完成一些重复操作。但是,也应该理性看待它的应用范围,避免 misuse.

    有16位网友表示赞同!

class="comment-item">

class="comment-item-head">

class="comment-user"> 十言i

class="comment-item-body">

我想问一下,Python 模拟登录淘宝会不会违反淘宝的协议?

    有19位网友表示赞同!

皎月仙女召唤师技能 皎月女神召唤师技能
« 上一篇 2024-10-22
没有了!
下一篇 »

相关推荐