新手学习Python,之前在网上看见一位朋友写的40行Python代码搞定京东秒杀,想在淘宝上帮女朋友抢玩偶,所以就照猫画虎的写了下淘宝的秒杀脚本,经自己实验可行。直接上代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
#-*- coding: UTF-8 -*- import os from selenium import webdriver import datetime import time chromedriver = "/usr/bin/chromedriver" os.environ[ "webdriver.chrome.driver" ] = chromedriver driver = webdriver.Chrome(chromedriver) def login(uname, pwd): driver.get( "https://www.taobao.com" ) if driver.find_element_by_link_text( "亲,请登录" ): driver.find_element_by_link_text( "亲,请登录" ).click(); time.sleep( 1 ) if driver.find_element_by_link_text( "密码登录" ): driver.find_element_by_link_text( "密码登录" ).click(); time.sleep( 1 ) if driver.find_element_by_name( "TPL_username" ): driver.find_element_by_name( "TPL_username" ).send_keys(uname); time.sleep( 1 ) if driver.find_element_by_name( "TPL_password" ): driver.find_element_by_name( "TPL_password" ).send_keys(pwd); time.sleep( 2 ) if driver.find_element_by_id( "J_SubmitStatic" ): driver.find_element_by_id( "J_SubmitStatic" ).click(); time.sleep( 1 ) driver.get( "https://cart.taobao.com/cart.htm" ) if driver.find_element_by_id( "J_SelectAll1" ): driver.find_element_by_id( "J_SelectAll1" ).click() time.sleep( 3 ) if driver.find_element_by_link_text( "结 算" ): driver.find_element_by_link_text( "结 算" ).click(); now = datetime.datetime.now() print ( 'login success:' , now.strftime( '%Y-%m-%d %H:%M:%S' )) def buy_on_time(buytime): while True : now = datetime.datetime.now() if now.strftime( '%Y-%m-%d %H:%M:%S' ) = = buytime: while True : try : driver.find_element_by_link_text( '提交订单' ).click() except : time.sleep( 1 ) time.sleep( 0.1 ) #中文账号的时候要给它编码一下,不然会出错 login( "中文账号" .decode( 'utf-8' ), '密码' ) #login("英文账号",'密码') #buy_on_time('2017-05-06 21:30:01') |
代码里面有很多的time.sleep(),主要是防止操作太快,网页没有刷新出来就会读不到下面的元素,由于淘宝可能会出现滑块验证,所以我让输入账号和密码之后休眠了3秒,没有操作的太快,所以没有出现滑块验证。但是去掉那个time.sleep(3)之后,就弹出了滑块验证,不知道为什么。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://blog.csdn.net/yooliee/article/details/71302283