python fastapi 获取所有header信息_Python爬虫实战之模拟登录淘宝并获取所有订单

点击上方[Python与人工智能社区]右上角[...][设为星标⭐]

05e7f5bc251d3a5032afae000fa8be19.gif

经过多次尝试,模拟登录淘宝终于成功了,实在是不容易,淘宝的登录加密和验证太复杂了,煞费苦心,在此写出来和大家一起分享,希望大家支持。

温馨提示

现在淘宝换成了滑块验证了,比较难解决这个问题,以下的代码没法用了,仅作学习参考研究之用吧。

本篇内容

1. python模拟登录淘宝网页

2. 获取登录用户的所有订单详情

3. 学会应对出现验证码的情况

4. 体会一下复杂的模拟登录机制

探索部分成果

1. 淘宝的密码用了AES加密算法,最终将密码转化为256位,在POST时,传输的是256位长度的密码。

2. 淘宝在登录时必须要输入验证码,在经过几次尝试失败后最终获取了验证码图片让用户手动输入来验证。

3. 淘宝另外有复杂且每天在变的 ua 加密算法,在程序中我们需要提前获取某一 ua 码才可进行模拟登录。

4. 在获取最后的登录 st 码时,历经了多次请求和正则表达式提取,且 st 码只可使用一次。

整体思路梳理

1. 手动到浏览器获取 ua 码以及 加密后的密码,只获取一次即可,一劳永逸。

2. 向登录界面发送登录请求,POST 一系列参数,包括 ua 码以及密码等等,获得响应,提取验证码图像。

3. 用户输入手动验证码,重新加入验证码数据再次用 POST 方式发出请求,获得响应,提取 J_Htoken。

4. 利用 J_Htoken 向 alipay 发出请求,获得响应,提取 st 码。

5. 利用 st 码和用户名,重新发出登录请求,获得响应,提取重定向网址,存储 cookie。

6. 利用 cookie 向其他个人页面如订单页面发出请求,获得响应,提取订单详情。

是不是没看懂?没事,下面我将一点点说明自己模拟登录的过程,希望大家可以理解。

前期准备

由于淘宝的 ua 算法和 aes 密码加密算法太复杂了,ua 算法在淘宝每天都是在变化的,不过,这个内容你获取之后一直用即可,经过测试之后没有问题,一劳永逸。

那么 ua 和 aes 密码怎样获取呢?

我们就从浏览器里面直接获取吧,打开浏览器,找到淘宝的登录界面,按 F12 或者浏览器右键审查元素。

在这里我用的是火狐浏览器,首先记得在浏览器中设置一下显示持续日志,要不然页面跳转了你就看不到之前抓取的信息了。在这里截图如下:

b3dac8d819b2f0a8658098bebccadce2.png

好,那么接下来我们就从浏览器中获取 ua 和 aes 密码

点击网络选项卡,这时都是空的,什么数据也没有截取。这时你就在网页上登录一下试试吧,输入用户名啊,密码啊,有必要时需要输入验证码,点击登录。

5b18851f4a24ced28ef1c8340fdb136c.png

等跳转成功后,你就可以看到好多日志记录了,点击图中的那一行 login.taobo.com,然后查看参数,你就会发现表单数据了,其中就包括 ua 还有下面的 password2,把这俩复制下来,我们之后要用到的。这就是我们需要的 ua 还有 aes 加密后的密码。

fa7b8f6c7ec7da4b64ace22ce5aede71.png

恩,读到这里,你应该获取到了属于自己的 ua 和 password2 两个内容。

输入验证码并获取J_HToken

经过博主本人亲自验证,有时候,在模拟登录时你并不需要输入验证码,它直接返回的结果就是前面所说的下一步用到的 J_Token,而有时候你则会需要输入验证码,等你手动输入验证码之后,重新请求登录一次。

博主是边写程序边更新文章的,现在写完了是否有必要输入验证码的检验以及在浏览器中呈现验证码。

代码如下

'CQC'

恩,请把里面的 ua 和 password2 还有用户名换成自己的进行尝试,用我的可能会产生错误的。

运行结果

fd4348b23d3cd25548d7378d86a2ec1a.png

然后会蹦出浏览器,显示了验证码的内容,这个需要你来手动输入。

在这里有小伙伴向我反映有这么个错误

dd0dc0a39a0b4d052686b64e6fd17018.png

经过查证,竟然是版本问题,博主本人用的是 2.7.7,而小伙伴用的是 2.7.9。后来换成 2.7.7 就好了…,我也是醉了,希望有相同错误的小伙伴,可以尝试换一下版本…

好啦,运行时会弹出浏览器,如图

f018e082ba1d0311afce5e33bb27c529.png

那么,我们现在需要手动输入验证码,重新向登录界面发出登录请求,之前的post数据内容加入验证码这一项,重新请求一次,如果请求成功,则会返回下一步我们需要的 J_HToken,如果验证码输入错误,则会返回验证码输入错误的选项。好,下面,我已经写到了获取J_HToken的进度,代码如下,现在运行程序,会蹦出浏览器,然后提示你输入验证码,用户手动输入之后,则会返回一个页面,我们提取出 J_Htoken即可。

注意,到现在为止,你还没有登录成功,只是获取到了J_HToken的值。

目前写到的代码如下

现在的运行结果是这样的,我们已经可以得到 J_HToken 了,离成功又迈进了一步。

d5324b351acfbae4a986e80242943a9b.png

好,到现在为止,我们应该可以获取到J_HToken的值啦。

利用J_HToken获取st

st也是一个经计算得到的code,可以这么理解,st是淘宝后台利用J_HToken以及其他数据经过计算之后得到的,可以利用st和用户名直接用get方式登录,所以st可以理解为一个秘钥。这个st值只会使用一次,如果第二次用get方式登录则会失效。所以它是一次性使用的。

下面J_HToken计算st的方法如下

#通过token获得st

 直接利用st登录

得到st之后,基本上就大功告成啦,一段辛苦终于没有白费,你可以直接构建get方式请求的URL,直接访问这个URL便可以实现登录。

'https://login.taobao.com/member/vst.htm?st=%s&TPL_username=%s' % (st,username)

比如

https:

另外还有页码的参数。

重新构建一个带有cookie的opener,将上面的带有st的URL打开,保存它的cookie,然后再利用这个opener打开已买到的宝贝的页面,你就会得到已买到的宝贝页面详情了。

#获得已买到的宝贝页面

正则表达式提取信息

这是我的已买到的宝贝界面,审查元素可以看到,每一个宝贝都是tbody标签包围着。

f2da5195e5b7f8b221ea3d4f35842b42.png

我们现在想获取订单时间,订单号,卖家店铺名称,宝贝名称,原价,购买数量,最后付款多少,交易状态这几个量,具体就不再分析啦,正则表达式还不熟悉的同学请参考前面所说的正则表达式的用法,在这里,正则表达式匹配的代码是

#u'\u8ba2\u5355\u53f7'是订单号的编码

最终运行结果

看一下运行结果吧~

6ab43788bd7a8fdcce5f3eece051b5df.png

好啦,运行结果就是上面贴的图片,可以成功获取到自己的商品列表,前提是把你们的 用户名,ua,password2这三个设置好。

以上均为博主亲身所敲,代码写的不好,谨在此贴出和大家一起分享经验~

小伙伴们试一下吧,希望对大家有帮助。

崔庆才,Python社区专栏作者

博客:https://zhuanlan.zhihu.com/pythoncoder

觉得本文对你有帮助?请分享给更多人

关注「Python爬虫与人工智能社区」加星标,提升全栈技能

本公众号会不定期给大家发福利,包括送书、学习资源等,敬请期待吧!

如果感觉推送内容不错,不妨右下角点个在看转发朋友圈或收藏,感谢支持。

好文章,我在看❤️

移动端内webview页面调试技巧 为什么要介绍这两个东西呢?因为我们大部分的电视直播在网络上都是m3u8格式的m3u8准确来说是一种索引文件,使用m3u8文件实际上是通过它来解析对应的放在服务器上的视频网络地址,从而实现在线播放。我不喜欢太过于术语的解释。简单来讲,我们看到的直播都是服务器把视频切片,然后一段一段给你发过来,客户端自己处理,整成视频给我们看这就是 m3u8但是浏览器不支持video直接播放m3u8格式的视频所以我们需要video.js来帮助我们,把这些切片的音视频给整成可以看的东西。 阅读详情

相关推荐

使用Python爬虫获取淘宝订单商品接口的全面指南

通过结合Python爬虫技术和淘宝API接口,我们可以高效、合规地获取淘宝商品详情和订单数据。这种方法不仅提高了数据获取的效率,也保证了数据的安全性和准确性。随着电子商务的不断发展,合理利用这些技术将为商家提供强大的数据支持,助力商业决策和市场分析。如遇任何疑问或有进一步的需求,请随时与我私信或者评论联系。

2401_89446003的博客 1331

selenium-referer:在使用Python和WebDriver的Selenium测试中添加Referer请求标头的示例

具有自定义Referer标头的Python Selenium测试 有时,当用户来自不同来源/搜索引擎时,网站需要具有不同的行为。 在我的用例中,我们的网站必须设置一个跟踪Cookie,该跟踪Cookie对于来自Google,AOL,Yahoo或MSN的用户将具有不同的值。 我必须测试在所有情况下都正确设置了cookie。 当我开始编写测试用例时,我发现没有在Selenium中添加“自定义”请求标头的“官方”方法。 实际上,这是团队明确拒绝实现的功能: 解决此问题的两种可能方法是: 在Firefox中创建2个测试配置文件,使用自定义引用配置其中一个,例如,使用扩展名。 在单元测试中动态选择配置文件。 使用代理服务器拦截正在发送的请求,注入自定义标头。 首先,这些选项需要用户手动干预,因此分发起来比较困难。 您必须向将要运行测试的人解释如何执行所有这些操作,而不是仅安装所需的软件

Python数据分析案例—淘宝用户行为分析

本文以淘宝app平台为数据集通过电商行业常见行业的指标对淘宝用户行为进行分析,从而探索淘宝用户行为进行分析,具体指标包括:日PV和日UV分析,付费率分析,转化率分析复购行为分析.

m0_61848660的博客 2682

Python爬虫实战五之模拟登录淘宝获取所有订单

经过多次尝试,模拟登录淘宝终于成功了,实在是不容易,淘宝登录加密和验证太复杂了,煞费苦心,在此写出来和大家一起分享,希望大家支持。 本篇内容 1. python模拟登录淘宝网页 2. 获取登录用户的所有订单详情 3. 学会应对出现验证码的情况 4. 体会一下复杂的模拟登录机制 探索部分成果 1. 淘宝的密码用了AES加密算法,最终将密码转化为256位,在POST时,传输的是256位

shengxiaweizhi的专栏 8795

如何爬取淘宝电商数据

在爬取淘宝电商数据之前,请务必遵守淘宝的相关规则和政策,获得合法的授权。 爬取淘宝数据的方法有很多种,这里介绍几种常见的方法。 使用淘宝开放平台的 API 接口。淘宝开放平台提供了许多 API 接口,可以让开发者获取淘宝数据。使用 API 接口的好处是不需要解决反爬虫的问题,也不会对淘宝服务器造成过大负荷。但是,API 接口的数据量有限,可能不能满足您的需求。 使用爬虫工具爬取网页数据。淘宝...

weixin_35756624的博客 2485

python fastapi 获取所有header信息_Python爬虫实战五之模拟登录淘宝获取所有订单...

点击上方[Python与人工智能社区]→右上角[...]→[设为星标⭐]经过多次尝试,模拟登录淘宝终于成功了,实在是不容易,淘宝登录加密和验证太复杂了,煞费苦心,在此写出来和大家一起分享,希望大家支持。温馨提示现在淘宝换成了滑块验证了,比较难解决这个问题,以下的代码没法用了,仅作学习参考研究之用吧。本篇内容1. python模拟登录淘宝网页2. 获取登录用户的所有订单详情3. 学会应对...

weixin_39568659的博客 249

Python爬虫项目实战之爬取淘宝商品数据

Python爬虫可以用于爬取淘宝商品数据,对这些数据进行数据分析。下面是一个简单的示例,展示如何使用Python爬取淘宝商品数据进行数据分析。

程序员鑫港的博客 4525

python网络爬虫淘宝订单提取

import asyncio import pyppeteer as pyp import time async def antiAntiCrawler(page): #为page添加反反爬虫手段 await page.setUserAgent('Mozilla/5.0 (Windows NT 6.1; \Win64; x64)') await page.evaluateOnNewDocument('()=>{Object.defineProperties(navigator,\.

Lin_Zhenyu的博客 1万+

android在线浏览

MainActivity。java package com.example.internetimageview; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.

Melinda_meng的博客 56万+

2022最新RTMP+HTTP直播地址汇总(亲测可用)

2022最新RTMP+HTTP直播地址汇总(亲测可用)

Master-D的博客 26万+

Python大数据-对淘宝用户的行为数据分析

数据获取 本次数据是在网上获取的来源于: 数据集-阿里云天池 ,不在进行抓取或收集,大家可以看这篇文章Python爬虫-抓取数据到可视化全流程的实现,详细的写了数据抓取的过程 数据清洗 首先该数据是在多个文件下的CSV文件,通过递归对文件夹内所有文件进行查询,了所有的指定文件,具体的操作步骤大家可以看数据集-阿里云天池这篇文章,里边详细的写了如何遍历所有文件夹,如何组合,如何批量的打开文件目录下的所有文件,对多文件下的文件进行合,本文就不再赘述数据合的过程了,直接采用合后的数据,大家不懂可

你隔壁的小王的博客 9875

Python爬虫实例之淘宝商品页面爬取(api接口)

函数,该函数接受一个淘宝商品的URL作为参数。然后,我们发送GET请求获取网页内容,使用BeautifulSoup库解析网页。我们通过CSS选择器定位DOM元素,提取商品的标题、价格和销量等数据,将其存储在一个字典中。最后,我们打印出提取的商品数据。请注意,为了模拟正常浏览器的请求,我们在请求头中添加了User-Agent。这是为了防止被网站屏蔽或拒绝访问。在实际应用中,你可以根据需要进行数据的进一步处理和存储,例如存储到数据库或导出为CSV文件。在代码中,我们首先定义了一个。

Merissa_的博客 4489

》》css3--动画

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>功能特权-QQ登录</title> <link rel="Shortcut Icon" href="im...

weixin_33690367的博客 13万+

python模拟登录淘宝获取所有订单

经过多次尝试,模拟登录淘宝终于成功了,实在是不容易,淘宝登录加密和验证太复杂了,煞费苦心,在此写出来和大家一起分享,希望大家支持。 温馨提示 现在淘宝换成了滑块验证了,比较难解决这个问题,以下的代码没法用了,仅作学习参考研究之用吧。 本篇内容 1. python模拟登录淘宝网页 2. 获取登录用户的所有订单详情 3. 学会应对出现验证码的情况 4. 体会一下复杂的模拟登录机制 探...

python学习者的博客 7563

淘宝天猫爬虫抓取采集详细页数据

在电商领域,通过爬取电商平台的数据,可以为企业提供宝贵的市场情报。

m0_73162914的博客 1757

Python爬虫】项目案例讲解,一步步教你爬取淘宝商品数据!

随着互联网时代的到来,人们更加倾向于互联网购物,某宝又是电商行业的巨头,在某宝平台中有很多商家数据,今天带大家使用python+selenium工具获取这些公开的商家数据这次的受害者:淘宝购物平台

bagell的博客 1万+

selenium+requests获取Post请求参数

背景 在日常爬虫中会遇到一些发送验证码的问题,这些验证码一般是出现在登录页面,针对这种情况我们一般的处理思路是发送一个请求来获取验证码,然后把识别到的验证码构造成请求参数。但是有些网页的验证码是实时刷新的,即每次发送一个request请求或者刷新界面的时候,验证码就会改变,例如http://zxgk.court.gov.cn/shixin/这个网址,每次刷新一次,验证码就会改变一次,这样的话就会产生一个问题,就是之前识别出的验证码出现失效问题,导致Post请求时出现失败。 ...

sl01224318的博客 5917
上一篇: 学爬虫python能自学吗_想学爬虫就一定要学Python吗?
下一篇: c 从dat文件读取信息并存储到数组中_解析plink的bed文件
weixin_39928667
博客等级 码龄9年 15粉丝 150原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值