什么是Selenium?
Selenium是一套可用于自动化 Web 浏览器操作的工具包。虽然Selenium最初是被设计用来支持自动化测试,但现在它的用途已经远远超出了测试范围,被广泛应用于各种自动化任务,比如 web scraping(网页抓取)、表单提交、用户界面测试等。
非常好用的控制浏览器技巧
前段时间因为工作的需要,偶然间了解到Selenium的一个使用方法,相比之前使用的方法而言这个操作浏览器的方法更加灵活和高效,为了避免每次使用这个方法时要去互联网上搜索,我便在此以文章的形式记录,方便自己使用和方便大家学习。
介绍这个技巧的原网址:https://blog.csdn.net/weixin_45081575/article/details/112621581
具体而言就是,就是直接使用Chrome的debug模式,打开一个新的窗口,这个窗口可以使用Selenium的Webdriver来通过设定的端口来与Chrome Drive交互以达到网页自动化的作用,至于为什么我说这个方法要比先前使用Selenium来得更加方便,是因为,通过这种方式,可以人工的在整个过程中直接通过浏览器操作页面,跳过自动化无法实现的部分,再使用自动化的方式完成设定好的流程。
操作步骤
打开一个可操控的Chrome浏览器
1.进入Chrome浏览器的安装路径,例如我本地的路径:C:\Program Files\Google\Chrome\Application
2.在此路径下输入cmd进入终端(终端中打开此路径)
3.在终端中输入chrome.exe --remote-debugging-port=9999 --user-data-dir=“E:\code\Selenium”
其中prot=9999 这个9999就是我设定的通信端口,也就是在后续使用selenium要对应上的端口,而--user-data-dir=“E:\code\Selenium”
这个命令行参数用于指定 Chrome 浏览器使用的用户数据目录。通常情况下,Chrome 会将用户的配置文件、扩展程序、书签、浏览历史等存储在其默认的数据目录中。但是,当你使用 --user-data-dir
参数启动 Chrome 时,它会告诉 Chrome 使用你指定的路径作为其用户数据目录。也就是前者是设定通信端口;后者用于设定浏览器的环境,不设置则为默认的Chrome环境。
4.输入完以上的指令,就会打开一个新的Chrome浏览器页面,并且是一个可以使用Selenium控制的页面
使用Selenium连接并操作Chrome浏览器
5.连接Chrome获取网页title
我先使用刚刚新获取的Chrome浏览器打开豆瓣读书,再使用一下方法来获取网页的title
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
options = Options()
options.add_experimental_option("debuggerAddress", "127.0.0.1:9999")
browser = webdriver.Chrome(options=options)
print(browser.title)
再附上获取网页html代码
# 获取并打印当前页面的 HTML 源代码
html_content = browser.page_source
print(html_content)