Selenium
Selenium 库支持多种编程语言,这里我们仅学习python版本。
安装
使用pip直接安装:pip install selenium
或者在PyPI Built Distribution处下载安装文件:pip install selenium-x.x.x.-py3-none-any.whl
使用方法
selenium 的使用步骤大致如下:
# 0.加载依赖
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
# 1.创建实例会话
options = webdriver.ChromeOptions() # 设置浏览器参数
service = Service(ChromeDriverManager().install()) # 设置服务对象
driver = webdriver.Chrome(service=service, options=options) # 创建实例会话
# 2.访问页面
driver.get("https://www.selenium.dev/selenium/web/web-form.html")
# 3.获取浏览器信息
title = driver.title
# 4.建立等待策略,等待页面加载,将代码与浏览器的当前状态同步是及其重要的步骤。
driver.implicitly_wait(0.5)
# 5.发送命令,查找元素,此处需要结合HTML、CSS的知识。
text_box = driver.find_element(by=By.NAME, value="my-text")
submit_button = driver.find_element(by=By.CSS_SELECTOR, value="button")
# 6.操作元素
text_box.send_keys("Selenium")
submit_button.click()
# 7.获取元素信息
message = driver.find_element(by=By.ID, value="message")
text = message.text
# 8.关闭会话
driver.quit()Ubuntu下的实例设置
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
chrome_options = webdriver.ChromeOptions()
chrome_options.binary_location = "/usr/bin/google-chrome" # 显式指定浏览器路径
chrome_options.add_argument("--headless=new") # 启用无头模式,即不打开浏览器窗口
chrome_options.add_argument("--no-sandbox") # 禁用沙盒模式
chrome_options.add_argument("--disable-dev-shm-usage") # 禁用 /dev/shm 使用,解决 Chrome 浏览器在 Ubuntu 下无法启动的问题
chrome_options.add_argument("--disable-gpu") # 禁用 GPU
chrome_options.add_argument("--window-size=1920,1080") # 设置窗口大小
chrome_options.add_argument("--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36") # 设置用户代理
# 禁用自动化提示
chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
chrome_options.add_experimental_option('useAutomationExtension', False)
# 使用 webdriver-manager 自动下载 chromedriver
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service, options=chrome_options)
# 绕过 navigator.webdriver 检测
driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
wait = WebDriverWait(driver, 10)其他
了解 selenium 的基本运行规则即可进行简单的爬虫,具体问AI吧。
