-
确认需要的工具及库
-
Chrome浏览器
- Python 3.x (推荐使用Anaconda环境)
- ChromeDrive (与你的浏览器版本对应,下载地址:https://sites.google.com/a/chromium.org/chromedriver/downloads)
-
selenium库
-
编写脚本
首先需要在Python中创一个项目,并在该项目中编写python脚本。
from selenium import webdriver
import time
url = 'https://www.taobao.com/'
login_url = 'https://login.taobao.com/member/login.jhtml'
# 商品详情页面url
goods_url = 'https://detail.tmall.com/item.htm?spm=a220m.1000858.1000725.6.42b61a73nWveOF&id=570333464784&skuId=4414092223927&user_id=1146797663&cat_id=50026545&is_b=1&rn=ab5df3b7d811af64b3f3b3be95938fb5'
# 设置等待下单时间
buy_time = '2018-08-15 20:00:01'
def login():
print('请手动输入账号密码进行登录...')
input('确认后按回车键开始...')
def buy():
driver = webdriver.Chrome()
driver.get(goods_url)
while driver.title.find('登录') >= 0:
time.sleep(1)
print(driver.title)
while True:
try:
if time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) < buy_time: # 未到下单时间,等待1秒
time.sleep(1)
else:
driver.find_element_by_link_text('立即购买').click()
print('购买成功!!!')
break
except Exception as err:
print(err)
time.sleep(0.5)
time.sleep(5000)
driver.quit()
if __name__ == '__main__':
login()
buy()
- 登录淘宝账号
首先执行该程序,按照提示手动在浏览器中输入账号密码进行登录。之后程序会自动打开商品详情页面,但此时会跳转到淘宝登录页面。
程序需要等待登录成功后,即商品详情页面加载完成后。通过driver.title
判断页面是否加载完成,此时程序会阻塞。
- 购买商品
在等待buy_time
的时间,此时页面会自动刷新(可以在Network中查看请求),等待商品有货后立即下单。在实例代码中,我们设置了一个时间点buy_time
,程序会在此时间点自动下单。
如果还没有到下单时间,程序会每隔1秒钟刷新一次页面以更新商品的库存状态,如果时间到了,程序会尝试通过driver.find_element_by_link_text('立即购买').click()
执行购买,如果该操作执行失败,程序会暂停0.5秒后重试。如果购买成功,程序会退出。
示例1:购买一个iPhone X
例如购买一个iPhone X的代码示例:
url = 'https://www.taobao.com/'
login_url = 'https://login.taobao.com/member/login.jhtml'
goods_url = 'https://detail.tmall.com/item.htm?spm=a220m.1000858.1000725.6.42b61a73nWveOF&id=570333464784&skuId=4414092223927&user_id=1146797663&cat_id=50026545&is_b=1&rn=ab5df3b7d811af64b3f3b3be95938fb5'
buy_time = '2018-08-15 10:00:00'
def login():
print('请手动输入账号密码进行登录...')
input('确认后按回车键开始...')
if __name__ == '__main__':
login()
buy()
示例2:购买一个热销商品
另外,类似于购买一个热销商品的代码示例:
url = 'https://www.taobao.com/'
login_url = 'https://login.taobao.com/member/login.jhtml'
goods_url = 'https://item.taobao.com/item.htm?spm=a219v.13590419.0.0.24134b28lakEWt&id=521547376162'
buy_time = '2018-08-15 10:00:00'
def login():
print('请手动输入账号密码进行登录...')
input('确认后按回车键开始...')
if __name__ == '__main__':
login()
buy()
注意:这些示例代码需要在实践中进行测试并适当修改,才能够成功执行。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python实现淘宝秒杀脚本 - Python技术站