爬虫爬取必应和百度搜索界面的图片

2024-05-09 07:12

本文主要是介绍爬虫爬取必应和百度搜索界面的图片,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

爬虫爬取必应和百度搜索界面的图片

  • 爬取bing搜索图片界面
    • 爬取百度搜索界面图片
      • 结果如下

爬取bing搜索图片界面

浏览器驱动下载地址

对应版本即可

浏览器驱动

mad直接用

import os
import re
from selenium import webdriver
from selenium.webdriver import Keys
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import Byimport time
os.chdir(r"D:\software_project\超声波水流量专利\code")# 下载图片的函数
import requests
from fake_useragent import UserAgent
# 添加了一个额外的参数 image_number 来跟踪图片编号
def download_image(url, folder, image_number):try:# 生成随机的User-Agentua = UserAgent()headers = {'User-Agent': ua.random}# 发送带有User-Agent的请求response = requests.get(url, headers=headers, stream=True)response.raise_for_status()# 使用图片编号来生成文件名file_name = f"{image_number}.png"file_path = os.path.join(folder, file_name)with open(file_path, 'wb') as f:for chunk in response.iter_content(1024):f.write(chunk)print(f"图片下载成功: {file_name}")except requests.exceptions.RequestException as e:print(f"图片下载失败: {e}")# 指定ChromeDriver的路径
chrome_driver_path = r"D:\software_project\超声波水流量专利\code\chromedriver\chromedriver.exe"
service = Service(executable_path=chrome_driver_path)# 创建WebDriver实例
driver = webdriver.Chrome(service=service)
# 搜索关键词
keyword = "饮料"  # 可以替换为其他关键词
# driver.get("https://cn.bing.com/images/search?q=" + keyword)# 第二种写法,找到搜索框并输入关键词
# 适合精准收索
driver.get("https://cn.bing.com/images/")
search_box = driver.find_element(By.ID, "sb_form_q")
# 设置sb_form_q的值为0
driver.execute_script("document.getElementById('sb_form_q').value ='';")
search_box.send_keys(keyword + Keys.ENTER)# 等待页面加载
time.sleep(1)  # 根据您的网络速度,可能需要调整等待时间
# 滚动页面加载更多图片
for i in range(10):  # 滚动 5 次driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")time.sleep(1)  # 等待页面加载# 获取图片元素
image_elements = driver.find_elements(By.CSS_SELECTOR, "img.mimg")# 提取图片URL
image_urls = [img.get_attribute("src") for img in image_elements if img.get_attribute("src") is not None]for index, url in enumerate(image_urls[3:], start=1):download_image(url, "下载的图片", index)
# 关闭浏览器
driver.quit()

爬取百度搜索界面图片

mad直接用

import os
import re
import requests
from selenium import webdriver
from selenium.webdriver import Keys
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
os.chdir(r"D:\software_project\超声波水流量专利\code")
# 清理文件名的函数
def clean_filename(filename):return re.sub(r'[\\/*?:"<>|]', '', filename)# 下载图片的函数
import requests
from fake_useragent import UserAgent
# 添加了一个额外的参数 image_number 来跟踪图片编号
def download_image(url, folder, image_number):try:# 生成随机的User-Agentua = UserAgent()headers = {'User-Agent': ua.random}# 发送带有User-Agent的请求response = requests.get(url, headers=headers, stream=True)response.raise_for_status()# 使用图片编号来生成文件名file_name = f"{image_number}.png"file_path = os.path.join(folder, file_name)with open(file_path, 'wb') as f:for chunk in response.iter_content(1024):f.write(chunk)print(f"图片下载成功: {file_name}")except requests.exceptions.RequestException as e:print(f"图片下载失败: {e}")# 指定ChromeDriver的路径
chrome_driver_path = r"D:\software_project\超声波水流量专利\code\chromedriver\chromedriver.exe"
service = Service(executable_path=chrome_driver_path)# 创建WebDriver实例
driver = webdriver.Chrome(service=service)# 搜索关键词
keyword = "饮料"  # 可以替换为其他关键词
driver.get(f"https://image.baidu.com/search/index?tn=baiduimage&word={keyword}")
# 记得对比链接
# https://image.baidu.com/search/index?tn=baiduimage&ps=1&ct=201326592&lm=-1&cl=2&nc=1&ie=utf-8&dyTabStr=MCwzLDEsMiw2LDQsNSw4LDcsOQ%3D%3D&word=%E5%9B%BE%E7%89%87# 等待页面加载
time.sleep(2)  # 根据您的网络速度,可能需要调整等待时间# 滚动页面加载更多图片
for i in range(5):  # 滚动 5 次driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")time.sleep(1)  # 等待页面加载# 获取图片链接
image_elements = driver.find_elements(By.CLASS_NAME, "main_img")
image_urls = []
for img in image_elements:# 尝试从不同的属性中获取图片URLsrc = img.get_attribute("src") or img.get_attribute("data-src") or img.get_attribute("data-original")if src:image_urls.append(src)for index, url in enumerate(image_urls[3:], start=1):download_image(url, "下载的图片2", index)
# 关闭浏览器
driver.quit()

结果如下

在这里插入图片描述
在这里插入图片描述

这篇关于爬虫爬取必应和百度搜索界面的图片的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/972731

相关文章

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

关于MongoDB图片URL存储异常问题以及解决

《关于MongoDB图片URL存储异常问题以及解决》:本文主要介绍关于MongoDB图片URL存储异常问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录MongoDB图片URL存储异常问题项目场景问题描述原因分析解决方案预防措施js总结MongoDB图

python实现svg图片转换为png和gif

《python实现svg图片转换为png和gif》这篇文章主要为大家详细介绍了python如何实现将svg图片格式转换为png和gif,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录python实现svg图片转换为png和gifpython实现图片格式之间的相互转换延展:基于Py

使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)

《使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)》PPT是一种高效的信息展示工具,广泛应用于教育、商务和设计等多个领域,PPT文档中常常包含丰富的图片内容,这些图片不仅提升了... 目录一、引言二、环境与工具三、python 提取PPT背景图片3.1 提取幻灯片背景图片3.2 提取

Python实现图片分割的多种方法总结

《Python实现图片分割的多种方法总结》图片分割是图像处理中的一个重要任务,它的目标是将图像划分为多个区域或者对象,本文为大家整理了一些常用的分割方法,大家可以根据需求自行选择... 目录1. 基于传统图像处理的分割方法(1) 使用固定阈值分割图片(2) 自适应阈值分割(3) 使用图像边缘检测分割(4)

C#实现将Excel表格转换为图片(JPG/ PNG)

《C#实现将Excel表格转换为图片(JPG/PNG)》Excel表格可能会因为不同设备或字体缺失等问题,导致格式错乱或数据显示异常,转换为图片后,能确保数据的排版等保持一致,下面我们看看如何使用C... 目录通过C# 转换Excel工作表到图片通过C# 转换指定单元格区域到图片知识扩展C# 将 Excel

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

基于Python实现高效PPT转图片工具

《基于Python实现高效PPT转图片工具》在日常工作中,PPT是我们常用的演示工具,但有时候我们需要将PPT的内容提取为图片格式以便于展示或保存,所以本文将用Python实现PPT转PNG工具,希望... 目录1. 概述2. 功能使用2.1 安装依赖2.2 使用步骤2.3 代码实现2.4 GUI界面3.效

Python实现AVIF图片与其他图片格式间的批量转换

《Python实现AVIF图片与其他图片格式间的批量转换》这篇文章主要为大家详细介绍了如何使用Pillow库实现AVIF与其他格式的相互转换,即将AVIF转换为常见的格式,比如JPG或PNG,需要的小... 目录环境配置1.将单个 AVIF 图片转换为 JPG 和 PNG2.批量转换目录下所有 AVIF 图