50行Python搞定京东商品抢购

50行Python搞定京东商品抢购

之前写的一篇京东抢购商品传送门,由于京东账号登录图片验证码改为了极验验证码,一直在尝试怎么用请求来去破解,而不是selenium去模拟点击,但是技不如人搞不定。。。

进而改为直接用cookie去登录,来抢购商品,对这方面感兴趣的可以加群来讨论。

import requests
import time
import json


class JD:
    headers = {
        'referer': '',
        'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',
    }

    def __init__(self):
        self.index = 'https://www.jd.com/'
        self.user_url = 'https://passport.jd.com/user/petName/getUserInfoForMiniJd.action?&callback=jsonpUserinfo&_=' + \
            str(int(time.time() * 1000))  # 检测用户信息
        self.buy_url = 'https://cart.jd.com/gate.action?pid={}&pcount=1&ptype=1'    # 添加到购物车
        self.pay_url = 'https://cart.jd.com/gotoOrder.action'   # 提交订单
        self.pay_success = 'https://trade.jd.com/shopping/order/submitOrder.action'  # 付款页面
        self.goods_id = ''  # 商品id
        self.thor = ''	# 用户的cookie
        self.session = requests.session()

    def login(self):  # 直接加上cookie访问用户信息。
        JD.headers['referer'] = 'https://cart.jd.com/cart.action'
        c = requests.cookies.RequestsCookieJar()
        c.set('thor', self.thor)  # 添加用户的thor
        self.session.cookies.update(c)
        response = self.session.get(
            url=self.user_url, headers=JD.headers).text.strip('jsonpUserinfo()\n')
        user_info = json.loads(response)
        print('账号:', user_info.get('nickName'))
        if user_info.get('nickName'):
            self.shopping()

    def shopping(self):
        goods_url = input('商品链接:')
        self.goods_id = goods_url[
            goods_url.rindex('/') + 1:goods_url.rindex('.')]
        JD.headers['referer'] = goods_url
        buy_url = self.buy_url.format(self.goods_id)
        self.session.get(url=buy_url, headers=JD.headers)  # 添加到购物车
        self.session.get(url=self.pay_url, headers=JD.headers)  # 提交订单
        response = self.session.post(
            url=self.pay_success, headers=JD.headers)     # 提交订单
        order_id = json.loads(response.text).get('orderId')
        if order_id:
            print('抢购成功订单号:', order_id)

jd = JD()
jd.login()	# http://loghb.com
  • 25
    点赞
  • 175
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
针对Python京东预约抢购,可以使用脚本自动化操作实现。首先,根据京东商品抢购方式,预约抢购需要在指定时间点开放购买,与普通商品下单流程一致。其次,按照以下步骤可以实现Python京东预约抢购: 1. 导入所需的Python库,比如Selenium和BeautifulSoup等,以实现自动化操作和网页解析功能。 2. 编写账号登录模块,通过模拟用户登录京东账号,获取登录后的cookie信息,以确保后续操作的登录状态有效。 3. 编写库存监听模块,通过监控商品页面的库存状态,当商品的库存状态变为可购买时,触发程序执下单操作。 4. 编写购物车管理模块,将待抢购商品添加到购物车中,并在库存状态可购买时,执下单操作。 5. 编写订单管理模块,根据下单结果判断是否下单成功,并进相应的处理。 需要注意的是,尽管脚本自动化操作可以提高下单成功率,但与专业抢购服务器相比,仍然有一定差距。因此,在实际操作中,还需要结合其他技术手段和策略,以提高预约抢购的成功率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【Python京东自动下单抢购脚本——双十一购物小技巧](https://blog.csdn.net/adminpd/article/details/127188898)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值