使用Selenium和Chrome浏览器获取图片网站搜索结果

2023-05-16

在进行信息检索时,我们通常会使用搜索引擎来查找相关的文章、图片、音乐等资源。而在特定的领域中,也有一些针对特定内容的搜索引擎或网站,比如百度图片、Pixabay等。在本篇博客中,我们将介绍如何使用Python的Selenium自动化测试工具和Chrome浏览器来获取多个图片网站中关于指定关键字的搜索结果,并返回其URL地址。

安装Selenium和Chrome浏览器

在使用Selenium和Chrome浏览器前,我们需要先安装它们。可以通过pip命令来安装Selenium:

pip install selenium

然后,需要下载并安装Chrome浏览器,在安装完成后,还需要下载对应版本的Chrome驱动程序才能配合Selenium使用。具体步骤可以参考Selenium官方文档。

模拟用户操作获取搜索结果

在安装好Selenium和Chrome浏览器之后,我们就可以使用以下代码来实现获取多个图片网站中关于指定关键字的搜索结果,并返回其URL地址。

from selenium.webdriver.common.by import By
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
import time


def get_word_pic_url(key_word):
    url1 = 'https://www.allhistory.com/painting'
    url2 = 'https://pixabay.com/zh/'

    s = Service(r'C:\Users\addoi\AppData\Local\Google\Chrome\Application\chromedriver.exe')

    options = webdriver.ChromeOptions()
    driver = webdriver.Chrome(service=s, options=options)

    driver.get(url1)
    
    # 在搜索框自动输入内容并点击搜索按钮
    time.sleep(2)
    input_box = driver.find_elements(By.XPATH, '//*[@id="header-search-box"]/input')[0]
    input_box.send_keys(key_word)
    time.sleep(3)
    search_button = driver.find_elements(By.XPATH, '//*[@id="header-search-box"]/div[2]/div')[0]
    search_button.click()
    time.sleep(10)

    # 获取当前页面的URL地址,并将其与第二个网站的URL地址拼接成一个字符串
    urls = driver.current_url + "\r\n" + url2

    # 打开第二个图片网站,输入关键字并点击搜索按钮
    # driver.get(url2)
    # time.sleep(2)
    # input_box = driver.find_elements(By.XPATH, '//*[@id="header-search-box"]/input')[0]
    # input_box.send_keys(key_word)
    # time.sleep(3)
    # search_button = driver.find_elements(By.XPATH, '//*[@id="header-search-box"]/div[2]/div')[0]
    # search_button.click()
    # time.sleep(10)
    #
    # urls = urls + driver.current_url
    # driver.close()

    print(f'爬取关键字 {key_word} 的url地址是 {driver.current_url}')
    return urls

其中,get_word_pic_url()函数接受一个参数key_word,表示需要搜索的关键词。在函数内部,首先定义了两个图片网站的URL地址url1url2,然后使用Selenium启动Chrome浏览器,并打开第一个网站url1。通过使用find_elements()方法和XPath表达式,定位到搜索框和搜索按钮,并使用send_keys()方法向搜索框自动填充关键词,使用click()方法模拟用户点击搜索按钮。

然后,通过使用current_url属性获取当前页面的URL地址,并将其与第二个图片网站的URL地址url2进行拼接,形成一个包含两个网站URL地址的字符串并返回。如果需要使用第二个图片网站的搜索结果,可以取消对应代码的注释。

需要注意的是,该函数在运行前需要将Chrome驱动程序放置在指定位置(这里是C:\Users\addoi\AppData\Local\Google\Chrome\Application\chromedriver.exe)。此外,还需要导入以下库:

from selenium.webdriver.common.by import By
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
import time

其中,time库用于添加延时操作,以等待页面加载完成。

完整代码

以下是一个使用Selenium和Chrome浏览器获取图片网站搜索结果的完整示例代码:

if __name__ == "__main__":
    key_word = "夕阳"
    urls = get_word_pic_url(key_word)
    print("搜索结果URL地址:\n", urls)

在示例代码中,首先定义了一个关键词key_word,然后调用get_word_pic_url()函数获取该关键词在两个图片网站中的搜索结果URL地址,并将结果打印输出。可以根据需要更改关键词。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用Selenium和Chrome浏览器获取图片网站搜索结果 的相关文章

随机推荐

  • ajax通过post方法传数组

    ajax在web项目开发中经常会用到 xff0c 平时我们传递数据 xff0c 基本都是一个参数名对应一个参数值 xff0c 后端通过参数名就可以得到参数 xff0c 从而进行相关逻辑处理 xff0c 但是有时候我们会遇到批量操作 xff0
  • “操作无法完成因为其中的文件夹或文件已在另一个程序中打开”解决办法

    在windows系统中 xff0c 我们经常会遇到这样一个问题 xff1a 删除某一个文件或者文件夹 xff0c 被提醒 xff1a 操作无法完成 xff0c 因为其中的文件夹或文件已在另一个程序中打开 这个时候我们一般会先检查是否真的有程
  • 几种常见mybatis分页实现

    mybatis框架分页实现 xff0c 有几种方式 xff0c 最简单的就是利用原生的sql关键字limit来实现 xff0c 还有一种就是利用interceptor来拼接sql xff0c 实现和limit一样的功能 xff0c 再一个就
  • curl发送POST方法类型带body参数请求以及发送上传文件请求

    curl在实际中会被postman等替代 xff0c 但是他仍然是一个快速的模拟http请求的工具 xff0c 而且也有他不可替代的理由 xff0c 使用简单 xff0c 在命令行下就可以完成 今天不是介绍如何使用curl模拟各种GET P
  • 第45章 DCMI—OV2640摄像头—零死角玩转STM32-F429系列

    第45章 DCMI OV2640摄像头 全套 200 集视频教程和 1000 页 PDF 教程请到秉火论坛下载 xff1a www firebbs cn 野火视频教程优酷观看网址 xff1a http i youku com firege
  • 技术分享|探究群体智能—基于UWB定位技术的无人机集群协同

    随着无人机性能水平提高 xff0c 无人机在民用类和军事类活动中的使用越来越广泛 由于无人机飞行环境和任务难度不同 xff0c 单架无人机因为自身动力和负荷能力很难独自完成任务 xff0c 无人机集群协同作业则是当前科技现代化的任务要求 集
  • 技术分享 | 基于室外RTK/GPS定位系统下的无人机集群协同

    在自然界中 xff0c 为弥补个体能力的不足 xff0c 诸多生物种群能通过个体相互之间的交流与合作呈现出某种群体行为 xff0c 比如鱼群结群游弋 鸟群聚集迁徙以及蚂蚁协同搬运等 受此激励 xff0c 人们希望开发像鸟群 鱼群一样自由集结
  • STL学习系列之一——标准模板库STL介绍

    说明 xff1a 此文为连载版 xff0c 今天学习STL的介绍 1 STL介绍 标准模板库STL是当今每个从事C 43 43 编程的人需要掌握的技术 xff0c 所有很有必要总结下 本文将介绍STL并探讨它的三个主要概念 xff1a 容器
  • 如何在cmakelist中,find_package取指定路径中查找

    在开发中 xff0c 最常遇到环境问题 xff0c 这个opencv版本不对 xff0c 那个pcl版本不对 xff0c 如果将原系统目录下的库卸载后重装新的版本 xff0c 往往会出现一些意想不到的事 xff0c 费时费力 我常常这样做
  • MFC模型树控件TreeCtrl实现按下Ctrl键多选,按下Shift键连选

    MFC模型树控件TreeCtrl实现按下Ctrl键多选 xff0c 按下Shift键连选 MFC的List Box只需要将控件属性中的Selection项设置为Extended xff0c 即可实现Ctrl键多选和Shift键连选 xff1
  • PCL点云库——欧式聚类分割

    欧式聚类分割 pcl EuclideanClusterExtraction是基于欧式距离提取集群的方法 xff0c 仅依据距离 xff0c 将小于距离阈值的点云作为一个集群 具体的实现方法大致是 xff1a 1 找到空间中某点p10 xff
  • PCL点云库——旋转平移矩阵

    旋转平移矩阵 点云摆正 点云配准等点云操作实质上是对点云进行旋转平移 xff0c 使点云变换至目标位姿 PCL中使用的是矩阵乘列向量的计算方法 下面分别给出了点A x y z 绕X轴 Y轴 Z轴逆时针旋转角度 的示意图与旋转矩阵 xff08
  • PCL点云库——点云法线估计

    点云法线估计 PCL中的所有点云的法线都是指向视点的 xff0c 视点坐标默认为 0 0 0 xff0c 对视点进行设置 xff0c 则可对法线进行定向 如图1与图2所示 xff0c 分别为斯坦福兔子在视点坐标为 10 10 10 与 10
  • PCL点云库——PCA粗配准

    PCA粗配准 主成分分析法 Principal Component Analysis xff0c 简称PCA 是使数据简化的算法 xff0c 通过揭露数据内部的主要分布方向 xff0c 减少了数据集的维数 xff0c 从而保留了点云集中贡献
  • MFC按钮(Button)上的文字与图标显示

    MFC按钮 xff08 Button xff09 上的文字与图标显示 一 新建对话框 MFC中使用以下两种方法可以得到对话框 xff1a 1 1 使用如图1所示的方法 xff0c 新建一个基于对话框的应用程序 xff1b 1 2 在已有的项
  • 第44章 MPU6050传感器—姿态检测—零死角玩转STM32-F429系列

    第44章 MPU6050传感器 姿态检测 全套 200 集视频教程和 1000 页 PDF 教程请到秉火论坛下载 xff1a www firebbs cn 野火视频教程优酷观看网址 xff1a http i youku com firege
  • 通过哪些性能参数选择手持式激光扫描仪?

    选择手持式激光扫描仪 激光主动成像系统有诸多优点 xff0c 譬如抗干扰性强 xff0c 能很好地适应不同的测量现场 xff0c 但是它的图像会受到散斑噪声和其他一些高斯噪声的影响 如图1所示 xff0c 分别用红 蓝激光扫描点距0 1mm
  • 函数使用笔记——ShellExecute

    函数使用笔记 ShellExecute API函数 ShellExecute的功能是运行一个外部程序 xff08 或者是打开一个已注册的文件 打开一个目录 打印一个文件等等 xff09 xff0c 并对外部程序有一定的控制 有几个API函数
  • 使用Selenium和Chrome浏览器获取诗词网站搜索结果

    在进行信息检索时 xff0c 我们通常会使用搜索引擎来查找相关的文章 图片 音乐等资源 而在特定的领域中 xff0c 也有一些针对特定内容的搜索引擎或网站 xff0c 比如古诗文网 诗词库等 在本篇博客中 xff0c 我们将介绍如何使用Py
  • 使用Selenium和Chrome浏览器获取图片网站搜索结果

    在进行信息检索时 xff0c 我们通常会使用搜索引擎来查找相关的文章 图片 音乐等资源 而在特定的领域中 xff0c 也有一些针对特定内容的搜索引擎或网站 xff0c 比如百度图片 Pixabay等 在本篇博客中 xff0c 我们将介绍如何