selenium实现自动勾选淘宝购物车 并支付

代码如下:

from selenium import webdriver
import time
from pykeyboard import *
from pymouse import *

browser = webdriver.Chrome()  # 浏览器对象
browser.maximize_window()     # 窗口最大化

k = PyKeyboard()  # 键盘对象
m = PyMouse()     # 鼠标对象

def login():
    # 打开淘宝首页,通过扫码登录
    browser.get("https://www.taobao.com")
    time.sleep(3)
    if browser.find_element_by_link_text("亲,请登录"):
        browser.find_element_by_link_text("亲,请登录").click()
        print(f"请尽快扫码登录")
        time.sleep(5)

def picking(method):
    # 打开购物车列表页面
    browser.get("https://cart.taobao.com/cart.htm")  # 打开淘宝页面
    time.sleep(3)

    # 是否全选购物车
    if method == 0:
        while True:
            try:
                if browser.find_element_by_id("J_SelectAll1"):
                    browser.find_element_by_id("J_SelectAll1").click()  # 点击全选
                    break
            except:
                print(f"找不到购买按钮")
    else:
        print(f"请手动勾选需要购买的商品")
    time.sleep(5)

def buy():
    while True: #  结算
        try:
            if browser.find_element_by_id("J_Go"):
                browser.find_element_by_id("J_Go").click()   # 点击结算
                print(f"结算成功,准备提交订单")
                break
        except:
            pass
            # 点击提交订单按钮
    time.sleep(2)

    while True:
        try:
            if browser.find_element_by_link_text('提交订单'):
                browser.find_element_by_link_text('提交订单').click()   # 点击提交订单
                print(f"抢购成功,请尽快付款")
                break
        except:
            print(f"再次尝试提交订单")


def pay():
    time.sleep(5)
    print("开始输入")  # 输入密码,这里设置的密码为666666,可以自行更改
    k.tap_key('6')
    k.tap_key('6')
    k.tap_key('6')
    k.tap_key('6')
    k.tap_key('6')
    k.tap_key('6')
    time.sleep(3)
    k.tap_key(k.enter_key)  # 回车确认支付


def scan():
    m.click(1604, 422)  # 鼠标点击打开二维码页面,以用来扫码登录
    print(m.screen_size())
    time.sleep(15)

'''
def get_join():
    browser.find_element_by_id('fm-login-id').send_keys("1835929828@qq.com")
    browser.find_element_by_id('fm-login-password').send_keys("666666")
    
    time.sleep(3)
    m.click(1433, 550)
    time.sleep(10)
'''

if __name__ == '__main__':
    login()   # 打开网页,进行登录
    scan()    # 扫码登录,需要在15秒内完成登录
    # get_join()   # 输入账号密码登录
    picking(0)  # 勾选购物车
    buy()  #  购买物品(结算和提交订单)
    pay()  # 输入密码支付

这里淘宝账号登录的时候,需要手机扫码登录。
本来加了一个自动账号密码登录,但是淘宝貌似有检测,自动滑块验证失败。

  • PyMouse(),鼠标对象,获取位置时,使用截图工具的像素即可。
  • 关于定位网页中的元素,以及几种定位方法,参考链接:网页元素定位
  • selenium操作时,需要睡眠几秒,不然页面反应不过来。
  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值