在Python使用Selenium获取页面的所有文本
众所周知, Selenium是一种自动化工具,通过它我们可以通过编写一些代码行来自动化浏览器。它与所有浏览器、操作系统兼容,并且它的程序可以用任何编程语言编写,例如Python、 Java等等。
Selenium提供了一个方便的 API 来访问Selenium WebDrivers,如 Firefox、IE、Chrome、Remote 等。目前支持的Python版本为 3.5 及以上。
安装:
使用 pip 安装Selenium包。只需在命令提示符下写入以下命令即可。
pip install selenium
一旦安装完成。打开Python Console,写这两个命令来验证是否安装了Selenium 。
Python3
import selenium
print(selenium.__version__)
Python3
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())
Python3
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from webdriver_manager.utils import ChromeType
driver = webdriver.Chrome(ChromeDriverManager(chrome_type = ChromeType.CHROMIUM).install())
Python3
from selenium import webdriver
from webdriver_manager.firefox import GeckoDriverManager
driver = webdriver.Firefox(executable_path = GeckoDriverManager().install())
Python3
from selenium import webdriver
from webdriver_manager.microsoft import IEDriverManager
driver = webdriver.Ie(IEDriverManager().install())
Python3
from selenium import webdriver
from webdriver_manager.microsoft import EdgeChromiumDriverManager
driver = webdriver.Edge(EdgeChromiumDriverManager().install())
Python3
# Importing necessary modules
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
# WebDriver Chrome
driver = webdriver.Chrome(ChromeDriverManager().install())
# Target URL
driver.get("https://www.geeksforgeeks.org/competitive-programming-a-complete-guide/")
# print(driver.title)
# Printing the whole body text
print(driver.find_element_by_xpath("/html/body").text)
# Closing the driver
driver.close()
输出:
'3.141.0'
Python 的Webdriver 管理器:
以前,我们应该下载二进制 chromedriver并将其解压缩到我们 PC 上的某个位置,并设置一个路径。之后,像这样设置这个驱动程序的路径:
webdriver.Chrome(executable_path=”D:\PyCharm_Projects\SeleniumLearning\Drivers\ChromeDriverServer.exe”)
但是每次都会有新版本的驱动发布,所以我们需要下载一个新的驱动,否则会报错。为了解决这个问题,我们需要安装webdriver-manager :
安装:
pip install webdriver-manager
如果我们使用chrome driver ,那么我们需要写这些行:
蟒蛇3
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())
像 Chrome 一样,我们也有其他一些浏览器。例如:
与铬一起使用:
蟒蛇3
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from webdriver_manager.utils import ChromeType
driver = webdriver.Chrome(ChromeDriverManager(chrome_type = ChromeType.CHROMIUM).install())
与火狐一起使用:
蟒蛇3
from selenium import webdriver
from webdriver_manager.firefox import GeckoDriverManager
driver = webdriver.Firefox(executable_path = GeckoDriverManager().install())
与 IE 一起使用:
蟒蛇3
from selenium import webdriver
from webdriver_manager.microsoft import IEDriverManager
driver = webdriver.Ie(IEDriverManager().install())
与边缘一起使用:
蟒蛇3
from selenium import webdriver
from webdriver_manager.microsoft import EdgeChromiumDriverManager
driver = webdriver.Edge(EdgeChromiumDriverManager().install())
在Python使用Selenium获取页面的所有文本
让我们学习如何在Python编程中借助selenium自动执行任务。在本文中,我们正在讨论如何使用selenium获取页面的所有文本。
方法:
- 从selenium模块导入 webdriver
- 在这里,在本文中,我们将在 Chrome 浏览器上自动执行任务。所以,我们必须从 webdriver_manager.chrome 导入 ChromeDriverManager。现在,我们不需要从互联网上下载任何驱动程序。此命令将自动从 Internet 下载驱动程序。目前,支持的 WebDriver 实现有 Firefox、Chrome、IE 和 Remote。
- 安装 Chrome 驱动程序并存储在 webdriver 实例中。
- driver.get 方法将导航到由 URL 给出的页面。 WebDriver 将等待页面完全加载,然后再将控制权返回给我们的程序。
- WebDriver 提供了使用 find_element_by_* 方法之一在我们的页面中查找元素的各种方法。例如,可以借助 xpath 定位给定页面的正文部分,我们将使用 find_element_by_xpath 方法。
- 最后,用于关闭浏览器窗口。我们将使用 driver.close 方法。另一种方法,我们有 driver.exit 方法,它关闭整个浏览器,其中 driver.close 将只关闭一个窗口选项卡。
下面是实现:
蟒蛇3
# Importing necessary modules
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
# WebDriver Chrome
driver = webdriver.Chrome(ChromeDriverManager().install())
# Target URL
driver.get("https://www.geeksforgeeks.org/competitive-programming-a-complete-guide/")
# print(driver.title)
# Printing the whole body text
print(driver.find_element_by_xpath("/html/body").text)
# Closing the driver
driver.close()
输出: