selenium 淘宝登陆购买,基础实现

主要实现基础的淘宝登陆搜索及购买。


利用selenium + chrome,当然,这个还有以下两个问题:

1. 不够稳定,还有些细节可以做

2. 没封装


先实现流程吧


from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time


def login(driver, account, password):
    #登陆
    driver.find_element_by_css_selector('div.site-nav-sign a.h').click()
    time.sleep(3)
    js = 'document.getElementById("J_Quick2Static").click()'
    driver.execute_script(js)
    driver.find_element_by_id('TPL_username_1').send_keys(account)
    time.sleep(1)
    driver.find_element_by_id('TPL_password_1').send_keys(password)
    time.sleep(2)
    try:
        driver.find_element_by_id('J_SubmitStatic').click()
    except:
        print('账号或密码错误!')
        pass
        time.sleep(3)
    return driver


def search_buy(driver, keyword, first_handle):
    #搜索购买
    elem = driver.find_element_by_id('q')
    elem.send_keys(keyword)
    elem.send_keys(Keys.RETURN)
    time.sleep(2)
    #购买第一个商品
    elem2 = driver.find_elements_by_css_selector('a.J_ClickStat')[1]
    elem2.click()
    time.sleep(1)
    all_handles = driver.window_handles
    #print(all_handles)
    for handle in all_handles:
        if handle == first_handle:
            pass
        else:
            print(handle)
            driver.switch_to.window(handle)
    driver.find_element_by_id('J_LinkBuy').click()
    time.sleep(2)
    return driver


def num_for_charge(driver, num):
    #输入充值手机号
    driver.find_element_by_id('pAccount').send_keys(num)
    time.sleep(1)
    driver.find_element_by_id('rpAccount').send_keys(num)
    time.sleep(1)
    try:
        driver.find_element_by_id('J_PerformSubmit').click()
    except:
        print("手机号码不对")
        pass
    time.sleep(3)
    return driver


def make_payment(driver, paypwd):
    #输入支付宝密码支付
    driver.find_element_by_id('payPwd').send_keys(paypwd)
    time.sleep(1)
    driver.find_element_by_id('payPwdConfirm').send_keys(paypwd)
    time.sleep(1)
    driver.find_element_by_id('J-submit').click()
    time.sleep(1)
    driver.quit()
    return print('finish!')


if __name__ == '__main__':
    url = 'https://www.taobao.com/'
    driver = webdriver.Chrome()
    driver.get(url)
    drivers = login(driver, "账户名", "密码")
    first_handle = driver.current_window_handle
    drivers = search_buy(drivers,"移动充值", first_handle)
    drivers = num_for_charge(drivers, "充值手机号")
    make_payment(drivers, "付款密码")

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值