Python中的无头Chrome2025年1月5日 | 阅读 5 分钟 数字领域的飞速发展催生了用于数据提取、测试和 Web 开发的现代工具。无头 Chrome 就是这样一种改变了浏览体验和开发人员自动化工作流程的现代工具。 在本通讯中,我们将深入探讨无头 Chrome 的世界,并了解其功能、优势、Python 实现等等。 无头 Chrome 简介无头 Chrome 因其无需图形用户界面即可作为 Web 浏览器运行的能力而日益受到开发人员的欢迎。它消除了对可见浏览器窗口的需求,并允许以编程方式与网页进行用户交互,从而使数据抓取、测试和自动化操作更容易完成。除了简化导航、修改和提取网页数据之外,无头 Chrome 还为开发人员提供了更快、更高效的浏览体验。无头 Chrome 不仅受到开发人员和企业的欢迎,而且具有极高的可扩展性和跨平台兼容性。 无头 Chrome 是广为人知的 Google Chrome Web 浏览器的修改版本。它与标准版的主要区别在于它没有图形用户界面,这使其非常适合需要后台不间断运行的自动化任务。无头 Chrome,对于自动化爱好者和开发人员来说都是一个重要的工具,它缺少用户界面,但提供了与标准 Chrome 浏览器相同的强大渲染和 JavaScript 功能。无论您需要运行测试、抓取数据还是自动化重复性任务,无头 Chrome 都是一个绝佳的选择,可以极大地提高您的生产力和效率。 为什么要使用无头 Chrome?无头 Chrome 使用各种框架进行自动化。一个流行且重要的 Python 框架称为 Selenium。此自动化框架包含一系列工具和功能。它可以很好地跨各种浏览器运行,并用于跨浏览器测试。 在现代 Web 开发中,Web 应用程序的测试和调试在很大程度上取决于多种浏览器的使用。开发人员经常使用浏览器自动化工具来自动化这些任务。无头 Chrome 就是这样一种工具,它是著名 Chrome 浏览器的一个无图形用户界面的版本。使用无头 Chrome 的主要优点是其对系统资源(如 CPU 和内存)的使用量较低。它没有图形用户界面 (GUI),但仍然可以打开多个进程来与网页交互并渲染 JavaScript 文件。因此,对于希望在消耗最少系统资源的情况下自动化调试和测试过程的开发人员来说,它是理想的选择。 Selenium 成为无头 Chrome 的最佳自动化工具的原因是,与其他框架(如 requests)不同,requests 不支持渲染 JavaScript 文件,只能从中打开原始 HTML 数据,这不足以进行 Web 抓取。但是,大多数网页都使用 JavaScript,而 Selenium 可以轻松有效地抓取这些网页。无头 Chrome 是一种更快的自动化方法,可以帮助实现流畅、快速的 Web 抓取。它在后台运行,因为它没有界面,因此可以同时处理多个任务。 在 Python 中构建无头 Chrome正如前面提到的,我们可以使用 Python Selenium 框架来构建无头 Chrome,因此我们需要首先对其进行深入了解。 支持它的编程语言列表包括 Python、Ruby、Java、JavaScript、NodeJS、PHP、C#、Perl 等等。它还支持许多浏览器,包括 Chrome、Edge、Firefox、Safari 等。 在继续在 Python 中创建无头 Chrome 之前,我们需要在 Python 中安装 Selenium 框架。 pip install selenium 我们已经安装了 selenium,现在我们将检查无头 Chrome 所需的库或先决条件。
现在,我们将实现无头 Chrome 并使用 Selenium 自动化我们的浏览器。 代码 输出 from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.by import By chrome_options = Options() chrome_options.add_argument("--headless") driver = webdriver.Chrome(options=chrome_options) driver.get("https://tpointtech.cn/") print("Title of the website is: ", driver.title) obj = driver.find_elements(By.XPATH, '//*[@id="link"]/div/ul/li[2]/a') print(obj) print('The searched element is: ') for objs in obj: print(objs.text) obj1 = driver.find_elements(By.XPATH, '//*[@id="link"]') print(obj1) print('List of Topics on the Home Page: ') for ob in obj1: print(ob.text) driver.quit() 在此代码中,我们借助 Selenium 创建了一个无头 Chrome。我们导入了必要的库,包括 Selenium 和 web drivers。创建了一个对象,该对象具有 options() 函数,用于修改搜索。然后,我们为无头 Chrome 添加了一个参数,然后创建了一个 driver 对象。借助 get() 函数,我们导航到了一个 URL。driver.title() 函数用于获取网站的标题。然后,使用 find_elements() 函数,我们使用其 XPATH 搜索了一些对象和元素,包括页面头部内容等。 作为输出,此代码会返回一个人类无法阅读的命令,以显示无头 Chrome 的成功运行,以及我们导航所需的必要输出。 我们知道无头 Chrome 没有 GUI;因此,它会在控制台中输出,而不会像任何自动化浏览器那样实际打开 Web 浏览器。 无头 Chrome 的缺点无头 Chrome 是一种流行的 Web 浏览器自动化工具,因其无需可见用户界面即可执行 Web 抓取和测试等任务而闻名。然而,除了其诸多优势之外,该工具还存在一些挑战和缺点。在处理动态数据时,其主要缺点之一是效率低下。无头 Chrome 难以跟上这种不断变化的数据。因此,与其他自动化浏览器相比,它可能需要更长的时间来处理信息,并且在检索准确数据方面可能不如其他浏览器成功。 下一个主题如何在 Matplotlib 中绘制虚线 |
Python 没有 do-while 循环。但我们可以创建这样的程序。do while 循环用于在执行语句后检查条件。它类似于 while 循环,但它至少执行一次。通用 do while 循环语法 do { ...
阅读1分钟
顺序、选择和迭代是构建算法的基本构建块。语句:在计算机中,一条语句是一种操作。计算机中的语句可能包含以下部分操作:输入数据信息发送到软件。处理数据并对...执行操作
阅读 3 分钟
词性标注是自然语言处理 (NLP) 中的一项基本任务。它涉及为句子中的每个词分配标签或标记,指示其词性 (POS) 或其他句法属性。本文探讨了如何使用各种...
阅读 4 分钟
在 Python 中,异步上下文管理器允许您在 async/await 情况下管理需要异步操作的对象。上下文管理器(with 语句)可以在同步上下文中创建和销毁对象;异步上下文管理器(async with)将此概念扩展到管理异步进程,例如...
阅读25分钟
简介:在本教程中,我们将学习如何在 Python 中将语音转换为文本,反之亦然。在当今的数字时代,语音和文本之间的转换能力已变得不可或缺。从语音控制到许多应用程序都迫切需要此功能……
5 分钟阅读
本文重点介绍在不使用 NumPy 库的情况下计算 Python 中的标准差。它探讨了替代方法,例如使用 Python 的内置 math 库和 statistics 模块来计算总体和样本标准差。通过实际示例和场景演示了计算过程,强调了手动方法以获得更深入的理解……
5 分钟阅读
葡萄酒分类简介 世界各地有各种各样的葡萄酒,例如起泡酒、甜点酒、流行酒、餐酒和陈年葡萄酒。您可能想知道如何确定哪种葡萄酒好,哪种不好。机器学习是解决之道...
阅读 8 分钟
在这个问题中,我们得到两个长度为 N 的数组,其中 N 是我们可用的物品数量。其中一个数组包含单个物品的利润值,第二个数组包含物品的重量。我们还...
阅读 6 分钟
从 PDF 报告中提取文本是信息科学、学术研究和商业智能等不同领域的常见先决条件。本指南将探讨使用 Python 从 PDF 文档中提取文本的各种技术,详细介绍 PyPDF2、pdfminer.six 和...等库。
阅读 6 分钟
? 简介 在统计学或机器学习中,平均绝对误差 (MAE) 用于检查模型预测的准确性。它提供了一种简单的方式来检查预测值与实际值。本文讨论了平均...
阅读 3 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India