Python使用selenium下载百度图片

Python使用selenium下载百度图片

import os
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By


def init(): #初始化浏览器
    save_path = r"D:\Deskbook\image" #下载路径
    os.makedirs(save_path, exist_ok=True)  # 确保输出文件夹存在
    timeout = 2 #超时等待时间
    url = "https://image.baidu.com/search/detail?" #网页url

    #编辑配置
    prefs = {
        "profile.default_content_settings.popups": 0, #防止保存弹窗
        "download.default_directory": save_path, #修改默认下载路径
        "profile.default_content_setting_values.automatic_downloads": 1 #允许多文件下载
    }

    chrome_options = webdriver.ChromeOptions()
    # 添加配置
    chrome_options.add_experimental_option("prefs", prefs)
    # 修改 windows.navigator.webdriver, 防机器人识别机制, selenium 自动登陆判别机制
    chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
    # 禁用启用blink运行时的功能
    chrome_options.add_argument("--disable-blink-features=AutomationControlled")

    driver = webdriver.Chrome(options=chrome_options)
    print("启动浏览器")
    # 超时等待, 隐性等待
    driver.implicitly_wait(timeout)
    driver.get(url=url)
    print("打开网页")

    return driver


def find(driver,xp): #捕获网页元素
    try:
        element = driver.find_element(By.XPATH,xp)
        return element
    except Exception as e:
        print(xp+" 捕获失败")
        raise e

def work(driver):
    driver.switch_to.default_content()
    download = find(driver,'//*[@class="bar-btn btn-download"]') # 下载键
    download.click()

    sleep(1)

    img_next = find(driver,'//*[@class="img-next"]') # 切换下一张图像
    img_next.click()

if __name__ == "__main__":
    driver = init()
    for i in range(300):
        work(driver)

    driver.quit()

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值