新手学习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