好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

如何秒下单?python的淘宝秒杀抢购下单源码参考

如何秒下单?python的淘宝秒杀抢购下单源码参考 疫情如期,隔离还在继续,何时工作是一个头大的问题,最近在看口罩,不少电商平台都有放出口罩,当然,手残党将会也会是一直难以下手,你可能很难抢得到,故找了几个关于python的淘宝秒杀抢购下单源码参考,当然本渣渣测试下单成功,但是准点抢购还是没有成功。

你是否有更好的方法或者方案?

关于淘宝下单的思路,鉴于淘宝的厉害,相信基本上都是采用的无头浏览器,即selenium驱动浏览器模拟人工提交订单,如果能够破解下单的post参数是最好不过了,暂未研究!

淘宝下单流程: 第一步:登录 发现微博登录添加了验证码,不知道是不是异地还是更新了,故采用扫码登录。

第二步:购买/结算 其中采用购物车提交的方式会让你感觉流畅不少! 当然也可以直接商品页购买!

第三步:提交订单

第四步:支付订单(秒杀下单)

这里准点下单购买能够走到第三步就成功了,当然还有一个思路就是试试看移动端下单是否更加简单顺畅呢?

python的淘宝秒杀抢购下单源码参考

版本一: 淘宝秒杀购物车下单支付

from?selenium?import?webdriverfrom?selenium.webdriver.support.ui?import?WebDriverWaitimport?requestsfrom?datetime?import?datetime

path?=r"C:\Users\Administrator\AppData\Local\Programs\Python\Python36\chromedriver.exe"??#?谷歌chromedriver完整路径#?输入秒杀时间start_time?=?'2020-03-04?14:59:58'#password?=?input("输入付款密码:")print("你只有15秒的登录时间")#?将输入的时间进行格式化timeArray?=?datetime.strptime(start_time,?"%Y-%m-%d?%H:%M:%S")#?用来判断?你是订单提交失败还是支付失败sum?=?0#?设置chrome驱动的路径driver?=?webdriver.Chrome(executable_path=path)#?打开淘宝的登录界面driver.get("https://cart.taobao测试数据/cart.htm")#?最大化浏览器driver.maximize_window()#?判断全选框是否出现?出现则点击全选?否则继续等待?最多等待15秒try:
????WebDriverWait(driver,?15,?0.1).until(
????????lambda?el:?driver.find_element_by_xpath('//*[@id="J_SelectAll1"]/div/label')).click()except:
????print("登录失败")def?time_server():
????#?获取淘宝服务器的时间戳
????r1?=?requests.get(url='http://api.m.taobao测试数据/rest/api3.do?api=mtop测试数据mon.getTimestamp',
??????????????????????headers={
??????????????????????????'User-Agent':?'Mozilla/5.0?(Windows?NT?10.0;?WOW64)?AppleWebKit/537.36?(KHTML,?like?Gecko)?Chrome/55.0.2883.87?UBrowser/6.2.4098.3?Safari/537.36'}
??????????????????????).json()['data']['t']
????#?把时间戳格式/1000?获取毫秒
????timeNum?=?int(r1)?/?1000
????#?格式化时间?(小数点后6为)
????time1?=?datetime.fromtimestamp(timeNum)
????return?time1#?等待时间到预定的时间print("等待中")while?True:
????#?判断时间服务器时间是否大于或等于输入的时间
????if?time_server()?>=?timeArray:
????????#?点击结算
????????driver.find_element_by_xpath('//*[@id="J_Go"]').click()
????????break
????else:
????????continuetry:
????#?判断提交订单的按钮是否出现?出现就点击?否则继续等待?最多等待3秒
????WebDriverWait(driver,?3,?0.1).until(
????????lambda?el:?driver.find_element_by_xpath('//*[@id="submitOrderPC_1"]/div/a[2]')).click()
????print("订单提交成功")
????print("秒杀成功")
????sum?=?1
????'''
????#?判断输入密码的框是否出现?出现就输入密码
????WebDriverWait(driver,?5,?0.1).until(
????????lambda?el:?driver.find_element_by_xpath('//*[@id="submitOrderPC_1"]/div/a[2]')).send_keys(password)
????#?点击确认付款
????driver.find_element_by_xpath('//*[@id="J_authSubmit"]').click()
????print("付款成功")'''except:
????if?sum?==?0:
????????print("提交订单失败")
????else:
????????print("提交订单失败")

修改来源: [Python] 开源一个python的淘宝秒杀的源码 吾爱论坛 id:牵手丶若相惜

版本二: 购物车提交订单

import?osfrom?selenium?import?webdriverfrom?selenium.webdriver测试数据mon.by?import?Byfrom?selenium.webdriver.support.ui?import?WebDriverWaitfrom?selenium.webdriver.support?import?expected_conditions?as?ECimport?datetimeimport?time#?deckodreiverchromedriver_path?=?r"C:\Users\Administrator\AppData\Local\Programs\Python\Python36\chromedriver.exe"??#?谷歌chromedriver完整路径options?=?webdriver.ChromeOptions()??#?配置?chrome?启动属性options.add_experimental_option("excludeSwitches",['enable-automation'])?#?此步骤很重要,设置为开发者模式,防止被各大网站识别出来使用了Seleniumdriver=webdriver.Chrome(executable_path=chromedriver_path,options=options)wait=WebDriverWait(driver,10)?#超时时长为10s#登录def?login():
????driver.get("https://cart.taobao测试数据/cart.htm")
????time.sleep(20)
????sel?=?wait.until(EC.presence_of_element_located((By.ID,?'J_SelectAll2')))
????sel.click()#下单def?buy(buytime):
????i?=?0
????while?True:
????????now?=?datetime.datetime.now().strftime('%Y-%m-%d?%H:%M:%S')
????????if?now?>?buytime:
????????????#driver.refresh()??#?刷新页面
????????????try:
????????????????jss?=wait.until(EC.presence_of_element_located((By.ID,?'J_Go')))
????????????????jss.click()
????????????????try:
????????????????????tjdd?=wait.until(EC.presence_of_element_located((By.XPATH,?'//div[@class="wrapper"]/a[@class="go-btn"]')))
????????????????????tjdd.click()
????????????????????now?=?datetime.datetime.now().strftime('%Y-%m-%d?%H:%M:%S')
????????????????????print(f"抢购成功,请尽快付款"+now)
????????????????????break
????????????????except:
????????????????????i=i+1
????????????????????try:
????????????????????????now?=?datetime.datetime.now().strftime('%Y-%m-%d?%H:%M:%S')
????????????????????????print(f"再次尝试提交订单"?+?now)
????????????????????????driver.refresh()??#?刷新页面
????????????????????????tjdd?=?wait.until(
????????????????????????????EC.presence_of_element_located((By.XPATH,?'//div[@class="wrapper"]/a[@class="go-btn"]')))
????????????????????????tjdd.click()
????????????????????????now?=?datetime.datetime.now().strftime('%Y-%m-%d?%H:%M:%S')
????????????????????????print(f"抢购成功,请尽快付款"+now)
????????????????????except:
????????????????????????try:
????????????????????????????i?=?i?+?1
????????????????????????????now?=?datetime.datetime.now().strftime('%Y-%m-%d?%H:%M:%S')
????????????????????????????print(f"再次尝试提交订单"?+?now)
????????????????????????????driver.refresh()??#?刷新页面
????????????????????????????tjdd?=?wait.until(
????????????????????????????????EC.presence_of_element_located((By.XPATH,?'//div[@class="wrapper"]/a[@class="go-btn"]')))
????????????????????????????tjdd.click()
????????????????????????????now?=?datetime.datetime.now().strftime('%Y-%m-%d?%H:%M:%S')
????????????????????????????print(f"抢购成功,请尽快付款"?+?now)
????????????????????????except:
????????????????????????????i?=?i?+?1
????????????????????????????now?=?datetime.datetime.now().strftime('%Y-%m-%d?%H:%M:%S')
????????????????????????????print(f"再次尝试提交订单"?+?now)
????????????????????????????driver.refresh()??#?刷新页面
????????????????????????????tjdd?=?wait.until(
????????????????????????????????EC.presence_of_element_located(
????????????????????????????????????(By.XPATH,?'//div[@class="wrapper"]/a[@class="go-btn"]')))
????????????????????????????tjdd.click()
????????????????????????????now?=?datetime.datetime.now().strftime('%Y-%m-%d?%H:%M:%S')
????????????????????????????print(f"抢购成功,请尽快付款"?+?now)
????????????except:
????????????????driver.get("https://cart.taobao测试数据/cart.htm")
????????????????sel?=?wait.until(EC.presence_of_element_located((By.ID,?'J_SelectAll2')))
????????????????sel.click()
????????????????jss?=?wait.until(EC.presence_of_element_located((By.ID,?'J_Go')))
????????????????jss.click()
????????????????now?=?datetime.datetime.now().strftime('%Y-%m-%d?%H:%M:%S')
????????????????print(f"再次尝试提交订单"+now)
????????????????i?=?i?+?1
????????????????try:
????????????????????tjdd?=wait.until(EC.presence_of_element_located((By.XPATH,?'//div[@class="wrapper"]/a[@class="go-btn"]')))
????????????????????tjdd.click()
????????????????????now?=?datetime.datetime.now().strftime('%Y-%m-%d?%H:%M:%S')
????????????????????print(f"抢购成功,请尽快付款"+now)
????????????????????break
????????????????except:
????????????????????i?=?i?+?1
????????????????????try:
????????????????????????now?=?datetime.datetime.now().strftime('%Y-%m-%d?%H:%M:%S')
????????????????????????print(f"再次尝试提交订单"?+?now)
????????????????????????driver.refresh()??#?刷新页面
????????????????????????tjdd?=?wait.until(
????????????????????????????EC.presence_of_element_located((By.XPATH,?'//div[@class="wrapper"]/a[@class="go-btn"]')))
????????????????????????tjdd.click()
????????????????????????now?=?datetime.datetime.now().strftime('%Y-%m-%d?%H:%M:%S')
????????????????????????print(f"抢购成功,请尽快付款"+now)
????????????????????????break
????????????????????except:
????????????????????????driver.get("https://cart.taobao测试数据/cart.htm")
????????????????????????sel?=?wait.until(EC.presence_of_element_located((By.ID,?'J_SelectAll2')))
????????????????????????sel.click()
????????????????????????jss?=?wait.until(EC.presence_of_element_located((By.ID,?'J_Go')))
????????????????????????jss.click()
????????????????????????now?=?datetime.datetime.now().strftime('%Y-%m-%d?%H:%M:%S')
????????????????????????print(f"再次尝试提交订单"?+?now)
????????????????????????i?=?i?+?1
????????????????????????now?=?datetime.datetime.now().strftime('%Y-%m-%d?%H:%M:%S')
????????????????????????print(f"再次尝试提交订单"?+?now)
????????????????????????driver.refresh()??#?刷新页面
????????????????????????tjdd?=?wait.until(
????????????????????????????EC.presence_of_element_located((By.XPATH,?'//div[@class="wrapper"]/a[@class="go-btn"]')))
????????????????????????tjdd.click()
????????????????????????now?=?datetime.datetime.now().strftime('%Y-%m-%d?%H:%M:%S')
????????????????????????print(f"抢购成功,请尽快付款"?+?now)
????????????????????????break

????????if?i>10:
????????????print(f">>>已经尝试第{i}次抢购,抢购失败,程序终止!")
????????????breakif?__name__=="__main__":
????login()
????buy('2020-03-02?19:59:58')

修改来源: [Python] 某宝秒杀关键模块及思路 吾爱论坛 id:露露的大雕

版本三: 商品页下单立即购买

#淘宝模拟登陆采集阿里商品#?-*-?coding:?utf-8?-*-#20191122?by?微信:huguo00289from?selenium?import?webdriverfrom?selenium.webdriver测试数据mon.by?import?Byfrom?selenium.webdriver.support.ui?import?WebDriverWaitfrom?selenium.webdriver.support?import?expected_conditions?as?ECimport?timeimport?datetime#定义一个taobao类class?taobao_infos:

????#对象初始化
????def?__init__(self):
????????url='https://login.taobao测试数据/member/login.jhtml'
????????self.url=url

????????options=webdriver.ChromeOptions()?#配置?chrome?启动属性
????????#options.add_experimental_option("prefs",?{"profile.managed_default_content_settings.images":?2})?#不加载图片,加快访问速度
????????options.add_experimental_option("excludeSwitches",['enable-automation'])?#?此步骤很重要,设置为开发者模式,防止被各大网站识别出来使用了Selenium

????????self.browser=webdriver.Chrome(executable_path=chromedriver_path,options=options)
????????self.wait=WebDriverWait(self.browser,10)?#超时时长为10s

????#扫码登陆淘宝
????def?login(self):
????????#打开网页
????????self.browser.get(self.url)
????????time.sleep(1)
????????time.sleep(15)


????#打开抢购商品首页
????def?get_shop(self,shop_url,buytime):
????????print("正在打开需要抢购的页面")
????????self.browser.get(shop_url)
????????while?True:
????????????now?=?datetime.datetime.now().strftime('%Y-%m-%d?%H:%M:%S')
????????????if?now?>?buytime:
????????????????try:
????????????????????#等待购买按钮出现
????????????????????linkbuy=self.wait.until(EC.presence_of_element_located((By.ID,'J_LinkBuy')))
????????????????????linkbuy.click()
????????????????????sutj=self.wait.until(EC.presence_of_element_located((By.XPATH,'//div[@class="wrapper"]/a')))
????????????????????sutj.click()
????????????????????print(f"抢购成功,请尽快付款")
????????????????except:
????????????????????self.browser.refresh()??#?刷新页面
????????????????????linkbuy?=?self.wait.until(EC.presence_of_element_located((By.ID,?'J_LinkBuy')))
????????????????????linkbuy.click()
????????????????????sutj?=?self.wait.until(EC.presence_of_element_located((By.XPATH,?'//div[@class="wrapper"]/a')))
????????????????????sutj.click()
????????????????????print(f"抢购成功,请尽快付款")





????def?gb(self):
????????print(">>>?抢购完毕,关闭浏览器!")
????????self.browser.quit()if?__name__?==?'__main__':
????chromedriver_path?=?r"C:\Users\Administrator\AppData\Local\Programs\Python\Python36\chromedriver.exe"??#谷歌chromedriver完整路径
????spider=taobao_infos()
????spider.login()
????datetime='2020-03-02?11:59:58'
????shop_url="https://detail.tmall测试数据/item.htm?id=550189462849&price=24.8"
????#shop_url='https://detail.tmall测试数据/item.htm?id=612510400743'?#抢购商品页
????try:
????????spider.get_shop(shop_url,datetime)
????except:
????????spider.get_shop(shop_url,?datetime)
????spider.gb()

网速比较慢,测试正常下单是基本没问题,可是说到准点抢购下单,还是够呛,如果本地驱动浏览器打开网页秒开的话,是否有很大几率成功呢,这还得测试!!

查看更多关于如何秒下单?python的淘宝秒杀抢购下单源码参考的详细内容...

  阅读:33次