本文共 2451 字,大约阅读时间需要 8 分钟。
以下是优化后的内容:
从百度图片下载图片的脚本开发过程
当今互联网时代,获取图片资源是一个常见需求。而百度图片作为一个专业的图片搜索引擎,其图片资源丰富且分类详细。通过结合Selenium自动化工具和requests库,可以编写一个自动下载图片的脚本,实现批量下载特定类型和数量的图片。
本文将详细介绍从搜索到下载的完整流程,并提供最终的Python代码实现。
模拟人工操作搜索图片
使用Selenium模拟浏览器操作,访问百度图片首页,输入搜索关键词并点击搜索按钮。通过分析页面源码,找到第一张图片的链接。解析页面结构
发现图片标签被包裹在a标签中,点击图片实际上会跳转到a标签的href地址。通过观察,a标签的name属性为“pn0”可以作为定位标准,用于提取第一张图片的链接。模拟点击图片
通过Selenium,模拟用户点击第一张图片,获取下一张图片的链接。观察到每张图片的class属性为“currentImg”,可以用来定位图片进行下载。循环下载图片
定义一个下载循环,根据需求下载指定数量的图片。每次循环中,定位当前图片并用requests库发送GET请求下载图片,并保存到本地指定路径。from selenium import webdriverimport requestsdef looking(mubiao): # 初始化浏览器 chrome_driver = 'E:\\chromedriver_win32\\chromedriver.exe' driver = webdriver.Chrome(executable_path=chrome_driver) # 打开百度图片主页 driver.get('https://image.baidu.com/') # 输入搜索关键词并点击搜索 driver.find_element_by_id('kw').send_keys(mubiao) driver.find_element_by_class_name('s_search').click() # 获取第一张图片的链接 href = driver.find_element_by_name("pn0").get_attribute('href') print("图片搜索地址:", href) return href # 关闭浏览器 driver.close()def download(url, n): # 初始化浏览器 chrome_driver = 'E:\\chromedriver_win32\\chromedriver.exe' driver = webdriver.Chrome(executable_path=chrome_driver) # 打开目标页面 driver.get(url) # 循环下载图片 for i in range(n): # 定位当前图片 current_img = driver.find_element_by_class_name("currentImg").get_attribute("src") # 下载图片 response = requests.get(current_img) with open(r'E:\Photo\%s.jpg' % (i+1), 'wb') as f: print("第", i+1, "张图片下载完毕!!!") f.write(response.content) # 模拟点击下一张图片 driver.find_element_by_xpath('//id("container")/span[2]/span').click() # 关闭浏览器 driver.close()if __name__ == "__main__": # 输入要下载的图片类型 mubiao = input("请输入要下载的图片类型:") # 输入下载数量 n = int(input("请输入下载数量:")) # 获取搜索地址 url = looking(mubiao) # 开始下载 download(url, n) Selenium模拟浏览器操作
通过Selenium驱动,模拟浏览器的初始访问、搜索输入和图片点击操作,实现了自动化操作。页面源码分析
通过查看页面源码,发现图片标签被包裹在a标签中,且a标签的name属性为“pn0”可以定位到第一张图片。循环下载逻辑
在下载循环中,通过定位当前图片的class属性“currentImg”实现了图片的连续下载,确保每次下载的图片都是最新的。requests库的HTTP请求
使用requests库发送GET请求,轻松实现图片的网络下载,并将图片内容写入本地文件。安装依赖
需要安装Selenium和requests库。请根据自己的操作系统安装相应版本的驱动程序。配置chromedriver
确保chromedriver.exe的路径正确,避免路径错误。图片保存路径
默认保存路径为E:\Photo\,请根据实际需求调整保存目录。输入参数
运行脚本时,输入搜索关键词和下载数量即可开始下载。以上代码和解释完整地展示了从百度图片下载图片的完整流程,适合用于批量下载图片资源。
转载地址:http://wfhe.baihongyu.com/