Python爬虫之定时抢购淘宝商品
import
time
from
selenium
import
webdriver
import
datetime
class
Spider:
def
__init__
(self, url):
self.
__base_url
=
url
self.
__headers
=
{
'
User-Agent
'
:
'
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36
'
,
}
def
get_url(self):
global
driver
driver.get(self.
__base_url
)
def
login(self):
global
driver
if
driver.find_element_by_link_text(
"
亲,请登录
"
):
driver.find_element_by_link_text(
"
亲,请登录
"
).click()
print
(
"
请在30秒内扫描登陆
"
)
time.sleep(
30
)
driver.get(
"
https://cart.taobao.com/cart.htm
"
)
def
selectAll(self,method):
global
driver
#
打开购物车列表页面
driver.get(
"
https://cart.taobao.com/cart.htm
"
)
time.sleep(
3
)
#
是否全选购物车
if
method ==
0:
while
True:
try
:
if
driver.find_element_by_id(
"
J_SelectAll1
"
):
driver.find_element_by_id(
"
J_SelectAll1
"
).click()
break
except
:
#
print(f"找不到购买按钮")
pass
if
method ==1
:
print
(f
"
请手动勾选需要购买的商品
"
)
time.sleep(
30
)
def
buy(self,times):
global
driver
while
True:
now
=
datetime.datetime.now()
#
对比时间,时间到的话就点击结算
if
now >
times:
#
点击结算按钮
while
True:
try
:
if
driver.find_element_by_link_text(
"
结 算
"
):
driver.find_element_by_link_text(
"
结 算
"
).click()
print
(f
"
结算成功,准备提交订单
"
)
break
except
:
pass
#
点击提交订单按钮
while
True:
try
:
if
driver.find_element_by_link_text(
'
提交订单
'
):
driver.find_element_by_link_text(
'
提交订单
'
).click()
print
(f
"
抢购成功,请尽快付款
"
)
except
:
#
print(f"再次尝试提交订单")
pass
time.sleep(
0.01
)
option
=
webdriver.ChromeOptions()
option.add_argument(
'
disable-infobars
'
)
driver
= webdriver.Chrome(chrome_options=
option)
spider
= Spider(
"
https://www.taobao.com
"
)
spider.get_url()
spider.login()
#
设置0为全选、1为手动
spider.selectAll(0)
#
设置抢购时间
set_time = datetime.datetime(2019,6,6,1,25
)
spider.buy(set_time)

