使用 Python Selenium 向下滚动网站
有时我们可能希望在浏览器中自动执行任务,例如在网站上滚动。Python 有一个强大的 Web 自动化工具,称为 Selenium。
它控制网络浏览器并允许我们自动执行特定操作。我们可以编写一个在网站上自动水平和垂直滚动的脚本。
安装 Selenium 和 Chrome WebDriver
要安装 Selenium,我们使用以下命令。
#Python 3.x
pip install selenium
ChromeDriver 是 Selenium WebDriver 用来与 Chrome 交互的另一个可执行文件。如果我们想在 Chrome 网络浏览器上自动执行任务,我们还需要安装 ChromeDriver。
根据 Chrome 浏览器的版本,我们需要为其选择兼容的驱动程序。以下是安装和配置 Chrome 驱动程序的步骤:
- 点击这个链接。根据你的 Chrome 浏览器版本和操作系统类型下载 Chrome 驱动程序。
- 如果要查找 Chrome 浏览器的版本,点击 Chrome 右上角的三个点,点击帮助,选择关于谷歌浏览器。你可以在 about 部分查看 Chrome 版本。
- 解压 zip 文件并运行 Chrome 驱动程序。
使用 Python Selenium 向下滚动网站
语法:
driver.execute_script("window.scrollBy(x_pixels, y_pixels);")
这里,x_pixels
表示水平滚动的像素数(在 x 轴上),y_pixels
表示垂直滚动的像素数(在 y 轴上)。在本指南中,我们仅垂直滚动以使 x_pixels
为 0。
按指定像素向下滚动
我们在以下代码中创建了 WebDriver 实例,并指定了 Chrome 驱动程序的路径。然后我们使用 get()
方法将目标网站的 URL 设置为驱动程序实例。
它将在所需的浏览器中打开目标网站。我们使用 maximize_window()
最大化了 Chrome 的窗口以获得更好的图片。
Selenium 具有通过 execute_script()
方法执行 JavaScript 命令的功能。我们使用 window.scrollBy()
方法自动向下滚动 1000 像素,并将此命令传递给 JavaScript 执行器。
该网站将自动垂直向下滚动 1000 像素。
示例代码:
#Python 3.x
from selenium import webdriver
driver = webdriver.Chrome(r"E:\download\chromedriver.exe")
driver.get("https://www.verywellmind.com/what-is-personality-testing-2795420")
driver.maximize_window()
driver.execute_script("window.scrollBy(0, 1000);")
输出:
向下滚动到网站底部
假设我们要向下滚动到页面的完整底部。document.body.scrollHeight
将给出页面的总高度(以像素为单位)。
我们将此高度指定为向下滚动的像素数。
示例代码:
#Python 3.x
from selenium import webdriver
driver = webdriver.Chrome(r"E:\download\chromedriver.exe")
driver.get("https://www.verywellmind.com/what-is-personality-testing-2795420")
driver.maximize_window()
driver.execute_script("window.scrollBy(0, document.body.scrollHeight);")
输出:
I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.
LinkedIn