[转载] Python京东抢购
参考链接: 从Python获取输入
Python京东抢购
分析其中提交信息接口的参数,可以成功抢购商品,并且可以提交订单。。。。2018年7月17日
提交信息的获取
直接提交信息对post提交分析其中的参数。 经过分析参数大多数在:https://passport.jd.com/new/login.aspx
图片验证码地址
判断登陆是否有验证码:后面的/uc/showAuthCode可以判断是一个url。 访问上面的code_url地址:可以看到获取的是false不需要验证码,true需要验证码 分析验证码地址的url: 分析验证码的地址:验证码是显示在login.aspx尝试是否能在里面获取参数信息。可以看到里面含有image_url图片后面的参数
进行post信息提交
分析post提交url的地址:登陆成功回返回success信息
接下来获取用户的信息: 就以上三步分析,主要还是其中参数分析比较困难,以及提交url地址后面需要的参数。有的时候url地址后面不要参数可以,但是有的时候没参数就不行。post提交地址的时候,一开始没有加上uuid参数就一直不能提交成功。
加入购物车并提交订单
添加到购物车的接口 注意这里提交订单需要加上header头中的’referer’: ‘https://cart.jd.com/cart.action’。 接下来就是提交订单的参数
贴上抢购过程
可以看到订单号是相同的,物品购买成功 加入了打码模块,和添加多个物品去购物车,以及商品倒计时。
完整登陆代码
import requests
import json
import time
import json
from pyquery import PyQuery as pq
from pprint import pprint as pp
class JingDong:
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36'
' (KHTML, like Gecko) Chrome/62.0.3202.89 Safari/537.36',
'Referer': 'https://www.jd.com/',
}
def __init__(self, username, password):
self.index_url = 'https://passport.jd.com/new/login.aspx' # 京东首页的地址
self.auth_url = 'https://passport.jd.com/uc/showAuthCode' # 判断验证码地址
self.post_url = 'https://passport.jd.com/uc/loginService?uuid{}<ype=logout&version=2015' # 登陆的地址
self.user_url = 'https://passport.jd.com/user/petName/getUserInfoForMiniJd.action?&callback=jsonpUserinfo&_=' + \
str(int(time.time() * 1000)) # 检测用户信息
self.session = requests.Session() # session通信
self.username = username
self.password = password
self.uuid = ''
def login_info(self): # 获取登陆信息的参数
response = self.session.get(
url=self.index_url, headers=self.headers).text
doc = pq(response)
sa_token = doc('#sa_token').attr('value')
uuid = doc('#uuid').attr('value')
self.uuid = uuid
eid = doc('#eid').attr('value')
fp = doc('#sessionId').attr('value')
_t = doc('#token').attr('value')
loginType = doc('#loginType').attr('value')
pubKey = doc('#pubKey').attr('value')
response = self.session.get(
url=self.auth_url, headers=self.headers).text
if 'true' in response: # 返回的true就是需要验证码
auth_code_url = doc('#JD_Verification1').attr('src2') # 获取code的url
auth_code = str(self.get_code(auth_code_url))
else:
auth_code = ''
data = { # 提交的参数
'uuid': uuid,
'eid': eid,
'fp': fp,
'_t': _t,
'loginType': loginType,
'loginname': self.username,
'nloginpwd': self.password,
'authcode': auth_code,
'pubKey': pubKey,
'sa_token': sa_token
}
return data
def get_code(self, url): # 获取验证码
time_str = str((int)(time.time() * 1000))
code_url = f'https:{url}&yys={time_str}' # 拼接code_img的地址
response = self.session.get(
url=code_url, headers=self.headers, stream=True)
with open('code.jpg', 'wb') as f:
for chunk in response.iter_content(1024):
f.write(chunk)
code_text = input('请输入验证码:')
return code_text
def login(self):
data = self.login_info() # 获取提交的参数
headers = {
'Referer': self.post_url,
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36'
' (KHTML, like Gecko) Chrome/62.0.3202.89 Safari/537.36',
'X-Requested-With': 'XMLHttpRequest'
}
try:
url = self.post_url.format(self.uuid) # 拼接提交url
login_page = self.session.post(
url, data=data, headers=headers) # 提交登陆
if 'success' in login_page.text:
print('登陆成功')
response = self.session.get(
url=self.user_url, headers=headers) # 获取登陆信息
response = response.text.strip('jsonpUserinfo()\n')
pp(json.loads(response))
except Exception as e:
raise e
jingdong = JingDong('用户名', '密码')
jingdong.login()
[转载] Python京东抢购相关推荐
- Python京东抢购
Python京东抢购 分析其中提交信息接口的参数,可以成功抢购商品,并且可以提交订单....2018年7月17日 提交信息的获取 直接提交信息对post提交分析其中的参数. 经过分析参数大多数在:ht ...
- python京东抢购软件神器_用Python在京东抢购商品
最近在网上看到一篇运用python从京东抢购商品的博客,激起了我的好奇心,python还真的啥都能做到吗????一起来跟小编尝试一下~ 首先肯定是安装python环境,大家可以从官网上下载最新版的py ...
- python京东抢购 github_11月份GitHub上最热门的Python开源项目
11月份GitHub上最热门的Python开源项目排行已经出炉啦,一起来看看上榜详情吧: 1. tinygrad https://github.com/geohot/tinygrad Star 324 ...
- python京东抢购软件_福利来了,python 京东抢购茅台脚本(亲测可用)
由于项目遵循GPL-3.0 License协议,明确项目内所有资源文件,禁止任何公众号.自媒体进行任何形式的转载.发布,故不写长篇篇幅来描述代码内容. 基于原作者的描述和本人的亲身实战,确实可以抢到茅 ...
- python京东抢购手机攻略_Python实现自动上京东抢手机
本文实例为大家分享了python自动上京东抢手机的具体代码,供大家参考,具体内容如下 上次抢荣耀V9,被京东给恶心到了,所以就写了个简单的Python来自动抢V9.虽然用的是比较蠢的方法,但觉得还是有 ...
- Python 京东抢购茅台脚本(亲测可用)
源代码可参考作者:https://github.com/huanghyw/jd_seckill 由于项目遵循GPL-3.0 License协议,明确项目内所有资源文件,禁止任何公众号.自媒体进行任何形 ...
- python京东抢购脚本_五个月抢京东抢茅台心得
5个月抢到4瓶茅台分享一点心得. 目前网上抢茅台靠谱且门槛低的有三个,首先是天猫,无门槛,实名认证,余额够就行.然后苏宁易购,一三五非会员也能抢购.其它时间要开会员才行.最后京东,必须plus会员.其 ...
- python京东抢购软件_[Python] 京东秒杀商品抢购-茅台抢购自动获取抢购时间【修改】...
这是咋回事 2021-01-12 08:36:03,201 - 14344-MainThread - jd_spider_requests.py[line:462] - INFO: 商品名称:[茅台白 ...
- python京东抢购 github_两天狂揽 4k+ Star,抢茅台 Python 脚本霸榜 GitHub
原标题:两天狂揽 4k+ Star,抢茅台 Python 脚本霸榜 GitHub 声明:本文已获得 开源前哨 授权 某东抢茅台脚本在 GitHub 连续霸榜 30 日,前哨君在刷 GitHub 的时候 ...
最新文章
- Linux如何查看当前目录下文件的个数
- python库datetime的使用
- 除了BAT,国内还有哪些值得关注的人工智能公司?
- 剑指Offer #12 数值的整数次方(快速幂)
- Python3 系列之 可变参数和关键字参数
- mysql 5.1.73.tgz下载_Linux下安装python,mysql
- 启动hadoop时报root@localhost's password: localhost: Permission denied, please try again.错误。...
- java语言基本语法_Java语言基本语法
- python写的程序怎么打包成exe_python--- 如何将自己的程序打包成exe ?
- Spring Data JPA 从入门到精通~思维导图
- 人工神经网络----Hebbian学习规则
- 生成器 Generators
- C语言函数传入字母参数,c语言详细讲解函数参数作为数组传递的几种方式
- 常见植被指数总结(一)
- 一文看懂推荐系统:排序11:Deep Cross Network(DCN)
- 房地产支撑不起大国崛起
- 酷6 期待“化茧成蝶”
- 如何将音频变声?试试这几个方法吧
- 浏览器中访问本地文件for mac
- 均衡负载集群(LBC)-1
热门文章
- micopython 18b20_MicroPython控制8*8LED点阵显示温度
- php times33,PHP Hash算法:Times33算法代码实例
- MySQL线上优化_线上MySQL千万级大表,如何优化?
- rust新版组队指令_Rust最新控制台命令2017
- android layout.inflater,Android - LayoutInflater
- 手写table用ajax遍历,原生js把数据循遍历到前端table
- python keyerror_盘点Python 初学者最容易犯的10大错误!你中招了吗?
- 非关型数据库之Hbase
- Redhat与ubuntu配置网卡
- 苹果可弯曲屏幕新专利获准,折叠iPhone最快2020年现身?