selenium练习--下载所有的图片

场景

下载iconfont-阿里巴巴矢量图标库 中的所有图标。

需要导入的库如下:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains  # 为了使用鼠标悬停

打开页面

    driver = webdriver.Chrome()
    driver.implicitly_wait(20)
    driver.get("https://www.iconfont.cn/collections/detail?spm=a313x.7781069.1998910419.dfa9d9a29&cid=42091")  # 开启网页

 点击登录按钮,输入账号和密码进行登录

    sign = driver.find_element(By.CLASS_NAME, "signin")  # 登录按钮
    sign.click()
    phone = driver.find_element(By.ID, "userid")  # 输入手机号
    phone.send_keys("18302919133")
    password = driver.find_element(By.ID, "password")  # 输入密码
    password.send_keys("lb1421755462")
    putin = driver.find_element(By.CLASS_NAME, "mx-form-btn.mx-form-btn-full.mx-btn-submit")  # 获取登录按钮
    putin.click()

 选择进入图标库

    pictures = driver.find_element(By.CLASS_NAME, "tab-icon")
    pictures.click()

 找到对应创作图标子库

    frames = driver.find_elements(By.CLASS_NAME, "block-collection")  # 找到每个框
    for i in range(len(frames)):
        p_id = frames[i].get_attribute("p-id")
        if p_id == "1067":
            frames[i].click()  # 点击之后会跳出来新的网页
            break

 获取每个图片

    driver.get("https://www.iconfont.cn/collections/detail?spm=a313x.7781069.1998910419.d9df05512&cid=44287")  # 获取新的网页
    driver.implicitly_wait(20)
    all_e = driver.find_element(By.CLASS_NAME, "collection-detail")  # 找到所有的图片
    elements = all_e.find_elements(By.TAG_NAME, "li")
    print(len(elements))

下载每个图片

        根据属性名称进行定位

        点击每个图片的隐藏下载按钮

        进入后找到下载按钮点击然后关闭下载框

    for e in elements:
        # 定位每个图片即可
        class_name = e.get_attribute("class")
        print("class_name:", class_name)
        pictures = driver.find_element(By.CLASS_NAME, class_name)  # 根据每个图的类名来定位图片
        load_position = pictures.find_element(By.CLASS_NAME, "icon-name")  # 找到下载悬停
        print(load_position.get_attribute("title"))  # 打印当前下载的是谁的图片
        # 移动鼠标到悬停位置
        ActionChains(driver).move_to_element(load_position).perform()
        button = pictures.find_element(By.CLASS_NAME, "cover-item.iconfont.cover-item-line.icon-xiazai")  # 找到当前图片的下载按钮
        print("找到了")
        # 移动鼠标到下载位置
        button.click()  # 点击每个下载
        # 寻找png下载
        load_buttons = driver.find_elements(By.CLASS_NAME, "btn.btn-normal.mr20")
        load_buttons[2].click()  # 点击png下载按钮
        # 关闭
        close_button = driver.find_element(By.CLASS_NAME, "mp-e2e-dialog-close.iconfont")  # 找到关闭按钮
        close_button.click()  # 点击关闭

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值