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

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

爬取bing搜索图片界面

浏览器驱动下载地址

对应版本即可

浏览器驱动

mad直接用

python 复制代码
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 By

import 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-Agent
        ua = 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直接用

python 复制代码
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-Agent
        ua = 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:
    # 尝试从不同的属性中获取图片URL
    src = 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()

结果如下

在这里插入图片描述

相关推荐
龙言龙论19 小时前
身份证信息批量处理系统:从入门到实战(附exe工具+核心源码)
数据库·python
m0_6265352019 小时前
代码分析 长音频分割为短音频
javascript·python·音视频
Wpa.wk19 小时前
自动化测试环境配置-java+python
java·开发语言·python·测试工具·自动化
带刺的坐椅19 小时前
AI 应用工作流:LangGraph 和 Solon AI Flow,我该选谁?
java·python·ai·solon·flow·langgraph
工业互联网专业20 小时前
图片推荐系统_django+spider
python·django·毕业设计·源码·课程设计·spider·图片推荐系统
Lwcah20 小时前
Python | LGBM+SHAP可解释性分析回归预测及可视化算法
python·算法·回归
@一辈子爱你20 小时前
归来九十余日:在时代的夹缝中,与你共筑一道光
python
HsuHeinrich20 小时前
利用面积图探索历史温度的变化趋势
python·数据可视化
winfredzhang20 小时前
Python实战:手把手教你写一个带界面的“照片按日期归档与清理”工具
python·复制·日期·回收站·媒体文件备份
程序员三藏1 天前
Jmeter自动化测试
自动化测试·软件测试·python·测试工具·jmeter·测试用例·接口测试