场景
下载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() # 点击关闭