当前位置: 首页 > article >正文

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

在进行信息检索时,我们通常会使用搜索引擎来查找相关的文章、图片、音乐等资源。而在特定的领域中,也有一些针对特定内容的搜索引擎或网站,比如古诗文网、诗词库等。在本篇博客中,我们将介绍如何使用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


def get_word_url(key_word):
    url1 = 'https://www.gushiwen.cn/'
    url2 = 'http://www.shangshiwen.com/search/?cate=all&kw='

    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)
    
    # 在搜索框自动输入内容并点击搜索按钮
    input_box = driver.find_elements(By.XPATH, '//*[@id="txtKey"]')[0]
    input_box.send_keys(key_word)
    search_button = driver.find_elements(By.XPATH, '/html/body/div[1]/div/div[2]/div[2]/div[1]/form/input[3]')[0]
    search_button.click()

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

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

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

然后,通过使用current_url属性获取当前页面的URL地址,并将其与第二个网站的URL地址url2和关键词key_word进行拼接,形成一个包含两个网站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

完整代码

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

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

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


http://www.kler.cn/a/4767.html

相关文章:

  • 编程题-二分查找
  • STM32如何测量运行的时钟频率
  • scala代码打包配置(maven)
  • wireshark排除私接小路由
  • 极大似然估计笔记
  • 《新闻大厦抢先版》V0.18.105+Dlcs官方学习版
  • c语言结构体详解
  • 200.Spark(七):SparkSQL项目实战
  • day10—编程题
  • 为了开放互联,明道云做了十件事
  • SM3哈希算法的FPGA实现 I
  • 【Unity 手写PBR】Build-in管线:实现间接光部分
  • 基于springboot实现家政服务管理平台【源码+论文】
  • 《Netty》从零开始学netty源码(十七)之AbstractUnsafe
  • 2023年湖北省建筑八大员(建设厅七大员)报考流程和拿证流程来咯!
  • 【redis】redis淘汰策略
  • 推荐一款自动生成财务报表分析的软件
  • 中介变量、调节变量与协变量
  • 人事文件签署单调、重复、繁重?君子签电子合同提升HR工作质效
  • Ajax:服务器的基本概念与初识Ajax
  • [水]与ChatGPT谈Java
  • 怎么将pdf压缩?pdf文件如何压缩?
  • 文心一言发布前一天,GPT-4震撼发布
  • 即时零售:不可逆的进化
  • 【WEB前端进阶之路】 HTML 全路线学习知识点梳理(下)
  • Air700E开发板|移芯EC618|4G Cat.1模组:概述及PinOut