0

    使用selenium自动秒抢淘宝商品(附详细入门指南)

    2023.06.12 | admin | 137次围观

    点击上方“Python数据分析之禅”,后台回复“福利1、2、3”

    可免费获取数据分析、python基础视频以及电子书教程

    selenium是一款web自动化测试工具,可以很方便地模拟真实用户对浏览器进行操作,它支持各种主流浏览器:IE、Chrome、Firefox、Safari、Opera等。

    selenium有多种编程语言的客户端驱动编写自动化脚本语法简洁,其中python的selenium库便非常的受欢迎。

    你可以使用selenium做web测试或者爬虫淘宝生成代码网站小,自动抢票、自动下单也可以用selenium来做。

    演示自动打开淘宝网(文末会有秒抢流程):

    使用Selenium实现自动化测试,需要3个要素:

    1.selenium客户端或者与特定编程语言绑定的客户端驱动,可以是python,java,js等;

    2.浏览器驱动, 这个驱动是根据不同的浏览器开发的,不同的浏览器使用不同的webdriver驱动程序且需要对应相应的浏览器版本;

    3.浏览器,目前selenium支持市面上大多数浏览器,如:火狐,IE等;

    安装selenium

    可以使用pip或conda命令安装selenium:

    pip install selenium

    安装浏览器驱动

    Selenium调用浏览器必须有一个webdriver驱动文件,下载好后把驱动程序放到python安装目录里即可。

    各大浏览器驱动下载地址:

    Firefox:

    Chrome:

    IE:

    以Chrome为例:

    先在设置里查看Chrome版本:

    然后下载对应的chromedrive,可以在淘宝的镜像网站下载:

    找到对应的版本号下载,解压到python安装目录里,或者anaconda安装目录scripts文件夹里。

    selenium操作浏览器

    在notebook中进行selenium的脚本编写,可以随写随调,非常方便。

    首先需要从selenium中导入webdriver模块:

    from selenium import webdriver

    然后打开浏览器:

    browser = webdriver.Chrome()

    最后可以打开某网址:

    browser.get("https://www.taobao.com/")

    针对浏览器的主要操作方法:

    selenium定位元素

    因为selenium是模仿真实点击浏览器的行为,所以必须要先定位网页元素,才能进行各种操作。

    「定位页面元素的8种主要方式」

    selenium操作网页

    定位元素后,需要对网页进行各种操作淘宝生成代码网站小,比如点击、刷新、保存等。

    点击展开新的页面,点击方法:element.click()

    其他主要操作方法:

    使用selenium抢购商品

    导入selenium相关模块

    # 导入库
    from selenium import webdriver
    import datetime
    import time

    打开chrome浏览器

    # 记录时间
    now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
    # 打开chrome 
    browser = webdriver.Chrome()

    登录淘宝


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

    选择购物车列表

    # 选择购物车列表
    def picking(method):
        # 是否全选购物车
        if method == 0:
            while True:
                try:
                    if browser.find_element_by_id("J_SelectAll1"):
                        browser.find_element_by_id("J_SelectAll1").click()
                        print('全选购物车成功')
                        break
                except:
                    print(f"找不到购买按钮")
        else:
            print(f"请手动勾选需要购买的商品")
            time.sleep(1)

    点击结算按钮

    # 点击结算按钮
    def settlement():
        while True:
            try:
                if browser.find_element_by_id('J_SelectedItemsCount').text >= '1':
                    browser.find_element_by_link_text("结 算").click()
                    print(f"结算成功,准备提交订单")
                    break
            except:
                pass

    点击提交订单按钮

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

    开始执行抢购

    def run(times):
        # 打开购物车列表页面
        print('正在抢购!')
        browser.get("https://cart.taobao.com/cart.htm")
        time.sleep(3)
        while True:
            now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
            # 对比时间,时间到的话就点击结算
            if now > times:
                # 全选购物车
                picking(0)
                # 点击结算按钮
                settlement()
                # 提交订单
                submitting()
                print(now)
                break

    结论

    selenium还有很多强大的功能,后续会继续分享,也期待大家留言说说你的selenium使用心得。

    最后补充一句,因为selenium涉及操作网页,所以需要使用者有一定的html知识储备,大家学之前可以先去看看html基础知识。

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    发表评论