以前的大部分程序都是操作Chrome,很少有操作Edge,现在以Edge为例。
Selenium本身是无法直接控制浏览器的,不同的浏览器需要不同的驱动程序,Google Chrome需要安装ChromeDriver、Edge需要安装Microsoft Edge WebDriver,其他浏览器也需要安装相应的驱动。
edge://version/
https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/#downloads
PyCharm未更新环境变量时,可以新打开CMD并切换到虚拟环境运行。
conda install selenium -y
# -*- coding: utf-8 -*-
'''
@Author : Corley Tang
@contact : cutercorleytd@gmail.com
@Github : https://github.com/corleytd
@Time : 2023-12-12 23:24
@Project : Hands-on Crawler with Python-edge_with_selenium
使用selenium操作edge访问百度
'''
# 导入所需的库
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
url = 'https://www.baidu.com/'
browser = webdriver.Edge() # 定义Edge浏览器,默认会加载当前Python虚拟环境目录下的Scripts目录下的msedgedriver.exe,也可以通过executable_path参数指定路径
browser.maximize_window() # 最大化窗口
try:
browser.get(url)
input_box = browser.find_element(By.ID, 'kw') # 定位网页中id为kw的元素,即百度搜索输入框
input_box.clear() # 清空输入框
input_box.send_keys('Python') # 输入搜索关键词
input_box.send_keys(Keys.ENTER) # 按下回车键
WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.ID, 'content_left'))) # 等待网页加载完成
print(browser.current_url)
print(browser.get_cookies())
print(browser.title)
print(len(browser.page_source))
finally:
time.sleep(5)
browser.close()