参考链接: 从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{}&ltype=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京东抢购相关推荐

  1. Python京东抢购

    Python京东抢购 分析其中提交信息接口的参数,可以成功抢购商品,并且可以提交订单....2018年7月17日 提交信息的获取 直接提交信息对post提交分析其中的参数. 经过分析参数大多数在:ht ...

  2. python京东抢购软件神器_用Python在京东抢购商品

    最近在网上看到一篇运用python从京东抢购商品的博客,激起了我的好奇心,python还真的啥都能做到吗????一起来跟小编尝试一下~ 首先肯定是安装python环境,大家可以从官网上下载最新版的py ...

  3. python京东抢购 github_11月份GitHub上最热门的Python开源项目

    11月份GitHub上最热门的Python开源项目排行已经出炉啦,一起来看看上榜详情吧: 1. tinygrad https://github.com/geohot/tinygrad Star 324 ...

  4. python京东抢购软件_福利来了,python 京东抢购茅台脚本(亲测可用)

    由于项目遵循GPL-3.0 License协议,明确项目内所有资源文件,禁止任何公众号.自媒体进行任何形式的转载.发布,故不写长篇篇幅来描述代码内容. 基于原作者的描述和本人的亲身实战,确实可以抢到茅 ...

  5. python京东抢购手机攻略_Python实现自动上京东抢手机

    本文实例为大家分享了python自动上京东抢手机的具体代码,供大家参考,具体内容如下 上次抢荣耀V9,被京东给恶心到了,所以就写了个简单的Python来自动抢V9.虽然用的是比较蠢的方法,但觉得还是有 ...

  6. Python 京东抢购茅台脚本(亲测可用)

    源代码可参考作者:https://github.com/huanghyw/jd_seckill 由于项目遵循GPL-3.0 License协议,明确项目内所有资源文件,禁止任何公众号.自媒体进行任何形 ...

  7. python京东抢购脚本_五个月抢京东抢茅台心得

    5个月抢到4瓶茅台分享一点心得. 目前网上抢茅台靠谱且门槛低的有三个,首先是天猫,无门槛,实名认证,余额够就行.然后苏宁易购,一三五非会员也能抢购.其它时间要开会员才行.最后京东,必须plus会员.其 ...

  8. python京东抢购软件_[Python] 京东秒杀商品抢购-茅台抢购自动获取抢购时间【修改】...

    这是咋回事 2021-01-12 08:36:03,201 - 14344-MainThread - jd_spider_requests.py[line:462] - INFO: 商品名称:[茅台白 ...

  9. python京东抢购 github_两天狂揽 4k+ Star,抢茅台 Python 脚本霸榜 GitHub

    原标题:两天狂揽 4k+ Star,抢茅台 Python 脚本霸榜 GitHub 声明:本文已获得 开源前哨 授权 某东抢茅台脚本在 GitHub 连续霸榜 30 日,前哨君在刷 GitHub 的时候 ...

最新文章

  1. Linux如何查看当前目录下文件的个数
  2. python库datetime的使用
  3. 除了BAT,国内还有哪些值得关注的人工智能公司?
  4. 剑指Offer #12 数值的整数次方(快速幂)
  5. Python3 系列之 可变参数和关键字参数
  6. mysql 5.1.73.tgz下载_Linux下安装python,mysql
  7. 启动hadoop时报root@localhost's password: localhost: Permission denied, please try again.错误。...
  8. java语言基本语法_Java语言基本语法
  9. python写的程序怎么打包成exe_python--- 如何将自己的程序打包成exe ?
  10. Spring Data JPA 从入门到精通~思维导图
  11. 人工神经网络----Hebbian学习规则
  12. 生成器 Generators
  13. C语言函数传入字母参数,c语言详细讲解函数参数作为数组传递的几种方式
  14. 常见植被指数总结(一)
  15. 一文看懂推荐系统:排序11:Deep Cross Network(DCN)
  16. 房地产支撑不起大国崛起
  17. 酷6 期待“化茧成蝶”
  18. 如何将音频变声?试试这几个方法吧
  19. 浏览器中访问本地文件for mac
  20. 均衡负载集群(LBC)-1

热门文章

  1. micopython 18b20_MicroPython控制8*8LED点阵显示温度
  2. php times33,PHP Hash算法:Times33算法代码实例
  3. MySQL线上优化_线上MySQL千万级大表,如何优化?
  4. rust新版组队指令_Rust最新控制台命令2017
  5. android layout.inflater,Android - LayoutInflater
  6. 手写table用ajax遍历,原生js把数据循遍历到前端table
  7. python keyerror_盘点Python 初学者最容易犯的10大错误!你中招了吗?
  8. 非关型数据库之Hbase
  9. Redhat与ubuntu配置网卡
  10. 苹果可弯曲屏幕新专利获准,折叠iPhone最快2020年现身?