code
import time
from splinter.browser import Browser
#url = "https://item.jd.com/100013976326.html"
def login(b): #登录京东
b.click_link_by_text("你好,请登录")
time.sleep(3)
b.click_link_by_text("账户登录")
b.fill("loginname","xxx") #填写账户密码
b.fill("nloginpwd","xxx")
b.find_by_id("loginsubmit").click()
time.sleep(3)
return b
def loop(b):
try:
# b.click_link_by_text("加入购物车")
b.click_link_by_text(btn)
# b.click_link_by_text("立即抢购")
if b.title== "商品已成功加入购物车":
print("加入购物车成功")
else: #多次抢购操作后,有可能会被转到京东首页,所以要再打开手机主页
print("抢购出错")
# b.visit("https://item.jd.com/6086957.html")
b.visit(url)#"https://item.jd.com/6063140.html")
time.sleep(3)
# b.click_link_by_text("立即抢购")
# b.click_link_by_text("加入购物车")
b.click_link_by_text(btn)
except:
print("没找到抢购按钮")
b.reload()
time.sleep(2)
loop(b)
b=Browser(driver_name= "chrome")
in_url = input("输入网址:\n") #https://item.jd.com/14441923664.html
btn_name = input("输入按钮名称(中英文都可):\n")
global url
url = in_url
b.visit(url)#"https://item.jd.com/6063140.html")
global btn
btn = btn_name
#time.sleep(15)
#login(b)
time.sleep(20)
loop(b)
- 尝试过,"立即抢购“、”加入购物车“没问题;部分手机、票仍然需要付款,那么可能需要预先login方式设置自己的支付宝或微信或银行卡的账号-密码。以及立即付款的按钮
- 为了账户安全和退款的麻烦,建议优先特定的银行卡,并且只存入你所购对应商品2倍的钱(最多只能抢购成功两个)不要购太多。容易有法律和账号被查封的风险
可能问题
- 基于chrome浏览器,需要chromeDrive插件,下载匹配自己浏览器版本的插件后,直接放入chrome根目录和python所用的环境的目录:(下面是86版本,最高当前支持87,还不太稳定,其它版本可以点击parentDirectory到服务器上级目录去查找)。
https://chromedriver.storage.googleapis.com/index.html?path=86.0.4240.22/
https://chromedriver.storage.googleapis.com/index.html?path=88.0.4324.96/ (88版本)
下载 解压缩,放到 C:\Program Files (x86)\Google\Chrome\Application
Chrome浏览器的主目录下;
- 推荐chrome浏览器,注意drive版本和chrome默认版本要一致,(一般是86版本,少数87, chrome右上角》帮助》关于chrome里面可查。