手把手教你用python抢茅台

编程入门 行业动态 更新时间:2024-10-28 15:26:48

手把手教你用python抢<a href=https://www.elefans.com/category/jswz/34/1759040.html style=茅台"/>

手把手教你用python抢茅台

最近经常看到在某东、某宝上定点抢茅台,抢到的话一瓶只要1499 元,前段时间一个朋友抢到了,可能是刚换了手机速度感人的原因,也可能是5G网速感人的原因,他竟然抢到了,收货的时候快递小哥直接想加800收购他的茅台,这钱挣得简直不要太香,就算不卖,自己囤着等重大节点拿出一瓶茅台,也挺有意义的。然鹅,当我每天蹲点按时抢了几天后,却抢了个寂寞,于是,我想到了万能的python。

话不多说,直接开整!这里是在某猫超市抢。我们主要用到的就是webdriver,用python打开浏览器,模拟人疯狂点击抢购按钮。

01 下载模拟用的Chrome

在.html?path=chromedriver/选择合适的版本下载,我下载的是97.0.4692.71 (正式版本) (32 位),亲测可用。

在系统环境变量里把下载的chrome加进去,打开控制台,输入chromedriver,如果显示这个,说明成功了,然后再python中启动driver即可,此时,在python中运行可启动chrome浏览器。

driver = webdriver.Chrome()

02 登录某宝


def _login(self, login_url: str=""):if login_url:self.driver = self.start_driver()else:print("Please input the login url.")raise Exception("Please input the login url.")while True:self.driver.get(login_url)try:if self.driver.find_element_by_link_text("亲,请登录"):print("没登录,开始点击登录按钮...")self.driver.find_element_by_link_text("亲,请登录").click()print("请在30s内扫码登陆!!")sleep(30)if self.driver.find_element_by_xpath('//*[@id="J_SiteNavMytaobao"]/div[1]/a/span'):print("登陆成功")breakelse:print("登陆失败, 刷新重试, 请尽快登陆!!!")continueexcept Exception as e:print(str(e))continue

其中,第10行即模拟点击“亲,请登录”按钮,12行执行后会显示登录的二维码,扫码登录即可,15即检测有没有登录成功,成功后,等待抢购,没成功就刷新。

03 等待抢购


while True:current_time = datetime.now()if (self.seckill_time_obj - current_time).seconds > 180:self.driver.get(".htm")print("每分钟刷新一次界面,防止登录超时...")sleep(60)else:print("抢购时间点将近,停止自动刷新,准备进入抢购阶段...")break

seckill_time_obj是设定的抢购时间,current_time是当前时间,如果时间差大于三分钟的话,则先不执行抢购操作,但每分钟刷新一次,防止退出登录。

04 开始抢购

首先是选择商品,这里是把购物车全选了,所以,抢购之前,先清空购物车,不然真抢购成功了,那购物车可就真清空了。


self.driver.get(".htm")sleep(1)if self.driver.find_element_by_id("J_SelectAll1"):self.driver.find_element_by_id("J_SelectAll1").click()print("已经选中全部商品!!!")
获取淘宝时间。

def taobao_time(self):url = '.do?api=mtopmon.getTimestamp'ret = requests.get(url).textjs = json.loads(ret)return int(js['data']['t'])

计算时间差。

def local_jd_time_diff(self):return self.local_time() - self.taobao_time()   

用一个while循环执行抢购操作,时间一到,即点击抢购按钮。


while True:if self.local_time() - diff_time >= self.buy_time_ms:try:if self.driver.find_element_by_id("J_Go"):self.driver.find_element_by_id("J_Go").click()click_submit_times = 0while True:try:if click_submit_times < 20:self.driver.find_element_by_link_text('提交订单').click()print("已经点击提交订单按钮")submit_succ = Truebreakelse:print("提交订单失败...")except Exception as e:print("没发现提交按钮, 页面未加载, 重试...")click_submit_times = click_submit_times + 1sleep(0.01)except Exception as e:print(e)if submit_succ:print("订单已经提交成功,无需继续抢购...")breakif retry_count > max_retry_count:print("重试抢购次数达到上限,放弃重试...")breakretry_count += 1sleep(0.1)

如果抢购成功了,即付款。


def pay(self):try:element = WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, 'sixDigitPassword')))element.send_keys(self.password)WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.ID, 'J_authSubmit'))).click()print("付款成功")except:print('付款失败')finally:sleep(60)self.driver.quit()

设定好抢购时间和付款密码,然后,就等待抢购就行啦,受到投放数量的限制,同时也可能受到其他脚本的竞争,这种抢购只能说是然你快人一步,具体真多快才能抢到,只能看个人运气了。

如果需要完整代码,可以扫码下方二维码回复【茅台】免费领取!

👉 这份完整版的Python代码已经上传,朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取保证100%免费

读者福利:CSDN大礼包:《Python小白从入门到精通全套学习资料》免费分享 安全链接免费领取

更多推荐

手把手教你用python抢茅台

本文发布于:2024-02-27 07:36:50,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1705731.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:茅台   手把手   教你用   python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!