使用selenium+chromedriver+xpath爬取动态加载信息(二)

简介: 使用selenium+chromedriver+xpath爬取动态加载信息(二)

接上文使用selenium+chromedriver+xpath爬取动态加载信息(一)https://developer.aliyun.com/article/1617935

selenium 模块的常用方法
selenium 模块支持多种获取网页节点的方法,其中比较常用的方法如下表:
selenium 模块获取网页节点的常用方法及描述
image.png
说 明

上表所有获取节点的方法均为获取单个节点的方法,如需要获取符合条件的多个节点时,可以在对应方法中element后面添加s即可。

除了以上常用的获取节点的方法外,还可以使用driver.find_element()方法获取单个节点,使用driver.find_elements()方法获取多个节点。只是在调用这两种方法时,需要为其指定by与value参数。其中by参数表示获取节点的方式,而value为获取方式对应的值(可以理解为条件)。示例代码如下:

# 获取商品信息节点中的所有div节点
      name_div = driver.find_element(By.XPATH,'//div[@class="itemInfo-wrap"]').find_elements(By.TAG_NAME, 'div')

    # 提取并输出单个div节点的内容
    print('提取的商品标题如下:')
    print(name_div[0].text)         # 打印商品标题
    print('提取的商品宣传语如下:')         # 打印商品宣传语
    print(name_div[1].text)

程序运行结果如下:

提取的商品标题如下:

零基础学Python(Python3.9全彩版)(编程入门 项目实践 同步视频)
提取的商品宣传语如下:
彩色代码更易学。Python编程从入门到实践书籍,网络爬虫、游戏开发、数据分析等深度学习。赠全程视频+源码+课后题+实物挂图+学习应用地图+电子书+图书答疑
明日科技 著

说 明

以上代码中首先使用find_element()方法获取class值为“itemInfo-warp“的整个节点,然后在该节点中通过find_elements()方法获取节点名称div的所有节点,最后通过name_div[0].text,name_div[1].text获取所有div中第一个第二个div内的文本信息。

下面是By的其他属性及用法
image.png

在使用selenium模块获取某个节点中的某个属性所对应的值时,可以使用get_attribute()方法来实现,示例代码如下:

# 根据XPath定位获取指定节点中的href地址
href = driver.find_element(By.XPATH, '//div[@id="p-author"]/a').get_attribute('href')
print('指定节点中的地址信息如下:')

程序运行结果如下:

指定节点中的地址信息如下:

https://book.jd.com/writer/%E6%98%8E%E6%97%A5%E7%A7%91%E6%8A%80_1.html

总 结

本案例中需要注意的是加载浏览器驱动,一定要指定chromedriver的路径。语法如下:

# 加载谷歌浏览器驱动
driver = webdriver.Chrome(options = chrome_options, executable_path='chromedriver')  # 本例驱动与爬虫程序在同一路                                                                                                                                                                            径

关闭浏览器页面

1. driver.close():关闭当前页面
2. driver.quit():退出整个浏览器
相关文章
|
3月前
|
数据采集 Web App开发 JavaScript
利用Selenium和XPath抓取JavaScript动态加载内容的实践案例
利用Selenium和XPath抓取JavaScript动态加载内容的实践案例
|
1月前
|
Web App开发 Java 测试技术
使用selenium+chromedriver+xpath爬取动态加载信息(一)
使用selenium+chromedriver+xpath爬取动态加载信息(一)
|
4月前
|
Web App开发 测试技术 Shell
确保您已经安装了Selenium和ChromeDriver。您可以使用pip来安装Selenium:
确保您已经安装了Selenium和ChromeDriver。您可以使用pip来安装Selenium:
|
5月前
|
Web App开发 Python
selenium firebug firePath xpath问题
selenium firebug firePath xpath问题
32 0
|
6月前
|
XML 前端开发 Java
《手把手教你》系列技巧篇(十六)-java+ selenium自动化测试-元素定位大法之By xpath下卷(详细教程)
【4月更文挑战第8天】本文介绍了WebDriver中的一种元素定位方法:By xpath。XPath是一种在XML文档中查找信息的语言,由于HTML文档是XML的子集,所以可以使用XPath来定位网页上的元素。XPath定位方法非常强大,几乎可以定位到页面上的任何元素。然而,由于它需要扫描整个页面来找到匹配的元素,所以定位速度相对较慢。
77 0
|
1月前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
99 5
|
1月前
|
Java 测试技术 C#
自动化测试之美:从Selenium到Appium
【10月更文挑战第3天】在软件开发的海洋中,自动化测试如同一艘航船,引领着质量保证的方向。本文将带你领略自动化测试的魅力,从Web端的Selenium到移动端的Appium,我们将一探究竟,看看这些工具如何帮助我们高效地进行软件测试。你将了解到,自动化测试不仅仅是技术的展示,更是一种提升开发效率和产品质量的智慧选择。让我们一起启航,探索自动化测试的世界!
|
1月前
|
JavaScript 前端开发 测试技术
精通Selenium:从基础到高级的网页自动化测试策略
【10月更文挑战第6天】随着Web应用变得越来越复杂,手动进行功能和兼容性测试变得既耗时又容易出错。自动化测试因此成为了现代软件开发不可或缺的一部分。Selenium是一个强大的工具集,它支持多种编程语言(包括Python),允许开发者编写脚本来模拟用户与Web页面的交互。本文将带领读者从Selenium的基础知识出发,逐步深入到高级的应用场景,通过丰富的代码示例来展示如何高效地进行网页自动化测试。
257 5
|
1月前
|
Web App开发 IDE 测试技术
自动化测试的利器:Selenium 框架深度解析
【10月更文挑战第2天】在软件开发的海洋中,自动化测试犹如一艘救生艇,让质量保证的过程更加高效与精准。本文将深入探索Selenium这一强大的自动化测试框架,从其架构到实际应用,带领读者领略自动化测试的魅力和力量。通过直观的示例和清晰的步骤,我们将一起学习如何利用Selenium来提升软件测试的效率和覆盖率。
|
16天前
|
Web App开发 设计模式 JavaScript
自动化测试之美:如何利用Selenium实现Web应用的高效测试
【10月更文挑战第29天】在软件开发的世界中,测试是确保产品质量的关键步骤。本文将带你了解如何使用Selenium这一强大的自动化测试工具,提高Web应用测试的效率和准确性。通过实际案例,我们将探索Selenium的核心功能及其在现代软件开发中的应用,旨在帮助读者掌握自动化测试的精髓,从而提升软件测试工作的整体效能。
13 0