python版本 3.7
用到库
selenium ---用于模拟浏览器操作
datetime、time ---用于对比时间
目标:实现输入时间 商品地址 最后定时完成加入购物车、提交订单,瞬间进入结算页面。
首先我们导入库
from seleniumimport webdriver
import datetime
import time
然后创建一个浏览器对象
这里我们用谷歌
driver = webdriver.Chrome()
整体代码上我们可以分为两个函数
1.登录函数
2.购买函数
先通过 get函数进入淘宝页面
driver.get('http://www.taobao.com')
为了防止出现滑块验证 模拟人的操作 我们可以暂停两秒
time.sleep(2)
找到
然后我们需要点击左上角的 亲,请登录
通过 driver.find_element_by_link_text(“”)找到这个区域
注意的是 element后面没有s 这里卡了我好久...
之后变回进入扫码页面 我们通过手机扫码完成登录
以下是登录函数的代码
def login():
driver.get('http://www.taobao.com')
time.sleep(2)
if driver.find_element_by_link_text("亲,请登录"):
driver.find_element_by_link_text("亲,请登录").click()
print("请在30秒内完成登录")
time.sleep(10)
- 购买函数
在这里我们需要输入一个抢购网址和抢购时间
为了方便输入抢购时间 我们可以输出一个现在的时间
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
print(now)
并且输入时间的时候一定要注意格式
不然python可能无法正确识别
输入抢购网址的时候需要在后面按一个空格
在pycharm编辑器中 直接回车会进入网址。
然后我们就会进入到抢购商品的页面。
然后我们通过一个死循环不断比较当前时间和输入时间
一旦当前时间 > 输入时间 就点击购买页面
同样 通过老办法获取 立即购买的 位置
然后模拟点击
while True:
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
if now > buytime:
driver.find_element_by_link_text("立即购买").click()
break;
time.sleep(0.1)
完成这个循环后 我们会进入到提交订单的页面
因为 只有当网页加载完成后才能点击
所以下面我们依然使用一个循环
并且在循环中使用try 防止报错
while True:
try:
if driver.find_element_by_link_text("提交订单"):
driver.find_element_by_link_text("提交订单").click()
except:
time.sleep(1)
就是调用两个函数就好啦
if __name__ == "__main__":
login()
buy()