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

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

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

使用selenium实现动态渲染页面的爬取,selenium是浏览器自动化测试框架,是一个用于Web应用程序测试的工具,可以直接运行在浏览器当中,并可以驱动浏览器执行指定的动作,如点击、下拉、填充数据、删除cookie等操作,还可以获取浏览器当前页面的源代码,就像用户在浏览器中操作一样。该工具所支持的浏览器有IE浏览器、Mozilla Firefox以及Google Chrome等。

安装selenium模块
首先打开Anaconda Prompt(Anaconda)命令行窗口,然后输入“pip install selenium“命令(如果没有安装Anaconda, 可以在cmd命令行窗口中执行安装模块的命令),接着按下(回车)键,如下图:

image.png

说 明

selenium有很多语言的版本,比如:Java、Ruby、Python等。

下载浏览器驱动
selenium模块安装完成以后还需要选择一个浏览器,然后下载对应的浏览器驱动,此时才可以通过selenium模块来控制浏览器的操作。这里选择Chrome浏览器Version 98.0.4758.80 (Official Build) (x86_64),然后在(http://chromedriver.storage.googleapis.com/index.html?path=98.0.4758.80/)谷歌浏览器驱动中下载浏览器驱动。如下图:
image.png

说 明

在下载谷歌浏览器驱动时,根据自己的电脑系统下载对应的浏览器驱动。

selenium模块的使用
谷歌浏览器驱动下载完成后, 将名称为chromedriver.exe文件拖放到/usr/bin 目录下(python.exe文件的同级路径)。然后需要通过Python代码进行谷歌浏览器驱动的加载,这样才可以启动浏览器驱动并控制浏览器了。

针对不同浏览器有不同的driver。以下列出不同浏览器及其对应的driver,如下表:
image.png

获取京东商品信息,示例代码如下:

#_*_coding:utf-8_*_
# 作者      :liuxiaowei
# 创建时间   :2/7/22 6:43 PM
# 文件      :获取京东商品信息.py
# IDE      :PyCharm

from selenium import webdriver  # 导入浏览器驱动模块
from selenium.webdriver.support.wait import WebDriverWait  # 导入等待类
from selenium.webdriver.support import expected_conditions as EC  # 等待条件
from selenium.webdriver.common.by import By                       # 节点定位

#from selenium.webdriver.chrome.service import Service

try:
    # 创建谷歌浏览器驱动参数对象
    chrome_options = webdriver.ChromeOptions()
    # 不加载图片
    prefs = {
   "profile.managed_default_content_settings.images": 2}
    chrome_options.add_experimental_option("prefs", prefs)
    # 使用headless无界面浏览器模式
    chrome_options.add_argument('--headless')
    chrome_options.add_argument('--disable-gpu')
    # 加载谷歌浏览器驱动
        driver = webdriver.Chrome(options = chrome_options, executable_path='chromedriver')
    # 请求地址
    driver.get('https://item.jd.com/12353915.html')
    wait = WebDriverWait(driver,10)    # 等待10秒
    # 等待页面加载class名称为m-item-inner的节点,该节点中包含商品信息
    wait.until(EC.presence_of_element_located((By.CLASS_NAME,"w")))

    # 获取name节点中所有div节点
    name_div1 = driver.find_element(By.XPATH,'//div[@class="sku-name"]')
    name_div2 = driver.find_element(By.XPATH, '//div[@class="news"]/div[@class="item hide"]')
    name_div3 = driver.find_element(By.XPATH, '//div[@class="p-author"]')
    summary_price = driver.find_element(By.XPATH, '//div[@class="summary-price J-summary-price"]')
    print('提取的商品标题如下:')
    print(name_div1.text)         # 打印商品标题
    print('提取的商品宣传语如下:')
    print(name_div2.text)         # 打印宣传语
    print('提取的编著信息如下:')
    print(name_div3.text)         # 打印编著信息
    print('提取的价格信息如下:')
    print(summary_price.text.strip('降价通知'))       # 打印价格信息
    driver.quit()  # 退出浏览器驱动
except Exception as e:
    print('显示异常信息!', e)

程序运行结果如下:

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

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

相关文章
|
4月前
|
数据采集 Web App开发 JavaScript
利用Selenium和XPath抓取JavaScript动态加载内容的实践案例
利用Selenium和XPath抓取JavaScript动态加载内容的实践案例
|
2月前
使用selenium+chromedriver+xpath爬取动态加载信息(二)
使用selenium+chromedriver+xpath爬取动态加载信息(二)
49 0
|
5月前
|
Web App开发 测试技术 Shell
确保您已经安装了Selenium和ChromeDriver。您可以使用pip来安装Selenium:
确保您已经安装了Selenium和ChromeDriver。您可以使用pip来安装Selenium:
|
6月前
|
Web App开发 Python
selenium firebug firePath xpath问题
selenium firebug firePath xpath问题
34 0
|
7月前
|
XML 前端开发 Java
《手把手教你》系列技巧篇(十六)-java+ selenium自动化测试-元素定位大法之By xpath下卷(详细教程)
【4月更文挑战第8天】本文介绍了WebDriver中的一种元素定位方法:By xpath。XPath是一种在XML文档中查找信息的语言,由于HTML文档是XML的子集,所以可以使用XPath来定位网页上的元素。XPath定位方法非常强大,几乎可以定位到页面上的任何元素。然而,由于它需要扫描整个页面来找到匹配的元素,所以定位速度相对较慢。
87 0
|
2月前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
134 5
|
7天前
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE:Web自动化测试的利器。作为开源工具,Selenium IDE支持录制与回放用户操作,适用于Chrome、Firefox等多浏览器,简化了测试流程,提升了效率,降低了自动化测试的门槛。它还支持导出多种编程语言的脚本,便于测试集成与复用。
52 19
Selenium IDE:Web自动化测试的得力助手
|
9天前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
82 17
Selenium:强大的 Web 自动化测试工具
|
2月前
|
Java 测试技术 C#
自动化测试之美:从Selenium到Appium
【10月更文挑战第3天】在软件开发的海洋中,自动化测试如同一艘航船,引领着质量保证的方向。本文将带你领略自动化测试的魅力,从Web端的Selenium到移动端的Appium,我们将一探究竟,看看这些工具如何帮助我们高效地进行软件测试。你将了解到,自动化测试不仅仅是技术的展示,更是一种提升开发效率和产品质量的智慧选择。让我们一起启航,探索自动化测试的世界!
|
2月前
|
JavaScript 前端开发 测试技术
精通Selenium:从基础到高级的网页自动化测试策略
【10月更文挑战第6天】随着Web应用变得越来越复杂,手动进行功能和兼容性测试变得既耗时又容易出错。自动化测试因此成为了现代软件开发不可或缺的一部分。Selenium是一个强大的工具集,它支持多种编程语言(包括Python),允许开发者编写脚本来模拟用户与Web页面的交互。本文将带领读者从Selenium的基础知识出发,逐步深入到高级的应用场景,通过丰富的代码示例来展示如何高效地进行网页自动化测试。
488 5