selenium
一 安装与准备
1 pip install selenium
2 安装浏览器,下载浏览器对应的驱动
https://registry.npmmirror.com/binary.html?path=chromedriver
3 相关资料:
http://www.python3.vip/tut/auto/selenium/01/
https://www.bilibili.com/video/BV1Z4411o7TA?p=4
二 基本操作
1 浏览器
from selenium import webdriver
# 创建 WebDriver 对象,指明使用chrome浏览器驱动位置
wd = webdriver.Chrome(r'd:\webdrivers\chromedriver.exe') # 启动浏览器驱动与浏览器
# 设置寻找元素的最大等待时间,最大时间内周期性(每隔半秒钟)寻找该元素
wd.implicitly_wait(10)
# 调用WebDriver 对象的get方法 可以让浏览器打开指定网址
wd.get('https://www.baidu.com')
# 浏览器当前页面的源代码(一个或多个请求返回结果共同渲染后的前端源码)
wd.page_source
# 浏览器当前页面的标题
wd.title
# 当前页面url
wd.current_url
# 设置浏览器位置相较于屏幕左上角的位置
wd.set_window_position(300, 200)
# 页面刷新,模拟浏览器F5刷新
wd.refresh()
# 退出,释放资源
wd.quit()
无界面浏览器
from selenium import webdriver
opt = webdriver.ChromeOptions() # 创建Chrome参数配置对象
# 把Chrome设置成可视化无界面模式,windows/Linux 皆可
# opt.headless = True 或者采用下面方式
opt.add_argument('--headless') # 无界面
opt.add_argument('--disable-gpu') # 禁用gpu
driver = webdriver.Chrome(executable_path=r'd:\chromedriver.exe', options=opt) # 创建Chrome无界面对象
2 选择元素的基本方法
1) 根据元素id属性选择元素
# 返回 WebElement 对象
element = wd.find_element_by_id('kw') # 获取元素
# element.send_keys("python\n") # 在元素中输入python回车,回车搜索
2) 根据元素的class属性获取元素
# 获取class名为animal的所有元素,返回一个列表
wd.find_elements_by_class_name('animal') # 列表,不存在[]
# 获取第一个class名为animal的元素
wd.find_element_by_class_name('animal') # 对象,不存在异常
例子
from selenium import webdriver
# 创建 WebDriver 实例对象,指明使用chrome浏览器驱动
wd = webdriver.Chrome(r'd:\webdrivers\chromedriver.exe')
# WebDriver 实例对象的get方法 可以让浏览器打开指定网址
wd.get('http://cdn1.python3.vip/files/selenium/sample1.html')
# 根据 class name 选择元素,返回的是 一个列表
# 里面 都是class 属性值为 animal的元素对应的 WebElement对象
elements = wd.find_elements_by_class_name('animal')