python秒杀脚本难不难_Python(4):秒抢脚本(火车票、秒杀、红包)

本文介绍如何使用Python和Splinter库实现自动化抢购流程,包括12306火车票秒抢和京东手机抢购的具体实现步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在写风控方面的内容,涉及到一些怎么设置网站的用户登陆安全、投资安全、运营安全方面的内容时,正好想起来去年的“月饼门”事件。对于码农来说,写个程序实现脚本抢标,这样的事情其实很简单。正好借着最近Python折腾代码的机会,整理下怎么通过Python来实现抢火车票、红包这些。

需要的工具和组件有:Python 3.5

Splinter 执行:pip install splinter安装Splinter即可

重点介绍splinter怎么使用?

>>> from splinter.browser import Browser

>>> xx = Browser(driver_name="chrome")

介绍几个常用功能:

1. 输入:xx.fill("wd", "dataman")即可在搜索栏搜索dataman。

2. 输入:button = xx.find_by_value(u"提问")

button = xx.find_by_id(u"zu-top-add-questionSBSBSBSBSBSBSB")寻找该按钮

(通过快捷键F12查询)

3. 输入:button.click() 点击该按键

下面用12306抢火车票/京东抢手机来示例下:

#12306秒抢Python代码

from splinter.browser import Browser

x = Browser(driver_name="chrome")

url = “https://kyfw.12306.cn/otn/leftTicket/init”

x = Browser(driver_name="chrome")

x.visit(url)

#填写登陆账户、密码

x.find_by_text(u"登录").click()

x.fill("loginUserDTO.user_name","your login name")

x.fill("userDTO.password","your password")

#填写出发点目的地

x.cookies.add({"_jc_save_fromStation":"%u4E0A%u6D77%2CSHH"})

x.cookies.add({"_jc_save_fromDate":"2016-01-20"})

x.cookies.add({u'_jc_save_toStation':'%u6C38%u5DDE%2CAOQ'})

#加载查询

x.reload()

x.find_by_text(u"查询").click()

#预定

x.find_by_text(u"预订")[1].click()

#选择乘客

x.find_by_text(u"数据分析侠")[1].click()

#-*- coding:utf-8 -*-

#京东抢手机脚本

from splinter.browser import Browser

import time

#登录页

def login(b): #登录京东

b.click_link_by_text("你好,请登录")

time.sleep(3)

b.fill("loginname","account*****") #填写账户密码

b.fill("nloginpwd","passport*****")

b.find_by_id("loginsubmit").click()

time.sleep(3)

return b

#订单页

def loop(b): #循环点击

try:

if b.title=="订单结算页 -京东商城":

b.find_by_text("保存收货人信息").click()

b.find_by_text("保存支付及配送方式").click()

b.find_by_id("order-submit").click()

return b

else: #多次抢购操作后,有可能会被转到京东首页,所以要再打开手机主页

b.visit("http://item.jd.com/2707976.html")

b.find_by_id("choose-btn-qiang").click()

time.sleep(10)

loop(b) #递归操作

except Exception as e: #异常情况处理,以免中断程序

b.reload() #重新刷新当前页面,此页面为订单提交页

time.sleep(2)

loop(b) #重新调用自己

b=Browser(driver_name="chrome") #打开浏览器

b.visit("http://item.jd.com/2707976.html")

login(b)

b.find_by_id("choose-btn-qiang").click() #找到抢购按钮,点击

time.sleep(10) #等待10sec

while True:

loop(b)

if b.is_element_present_by_id("tryBtn"): #订单提交后显示“再次抢购”的话

b.find_by_id("tryBtn").click() #点击再次抢购,进入读秒5,跳转订单页

time.sleep(6.5)

elif b.title=="订单结算页 -京东商城": #如果还在订单结算页

b.find_by_id("order-submit").click()

else:

print('恭喜你,抢购成功')

break

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值