啥是selenium
selenium是用于Web应用程序自动化测试工具,就像真正的用户在操作一样浏览器一样,驱动浏览器执行特定的动作,如点击、下拉、输入文本等操作。
selenium在爬虫中的应用
- 在获取动态页面中的数据,有一些动态的数据在获取源码中并没有显示这一类数据,就可以使用selenium模拟浏览器行为,获取这类数据
- 可以用于模拟登陆,使用selenium模拟用户登陆行为,保存登陆后的cookie,可保持登陆状态。
selenium库的安装
pip install selenium
driver下载地址
要使用selenium模拟浏览器的行为,需要下载其驱动,并添加到环境变量当中
元素定位方法
-
Python selenium中8种定位方法
find_ element by_id()
find element by_name()
find_ element by_class_name()
find_elementby_tag_name()
find_ element_by_link_text()
find_ element by_partial_link_text()
find_ elementby_xpath()
find_element by_css_selector()
浏览器交互方法
-
控制浏览器
- 浏览器最大化窗口
maximize_window() - 设置窗口大小(宽,高)
set_window_size(800,900) - 控制浏览器前进、后退、刷新
back()、forwar()、refresh()
- 浏览器最大化窗口
-
控制鼠标
- 执行ActionChains中存储的行为
perform() - 点击
click() - 右击
context_click() - 双击
double_click() - 拖动
drag_and_drop() - 鼠标悬停
move_to_element()
- 执行ActionChains中存储的行为
实操小例子
打开Chrome浏览器→打开百度→输入python→点击百度一下进行搜索→退出浏览器
# 导包
import time
from selenium import webdriver
# 打开谷歌浏览器
browser = webdriver.Chrome()
# 浏览器最大化
browser.maximize_window()
# 打开百度
browser.get('https://www.baidu.com')
time.sleep(3)
# 通过id字段查找到百度搜索框
# <input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">
search = browser.find_element_by_id('kw')
# # 可以自定义搜索内容
# text = input('请输入要搜索的信息:')
# 向搜索框输入内容
# search.send_keys(text)
search.send_keys('python')
# 通过id字段查找到搜索按钮
# <input type="submit" value="百度一下" id="su" class="btn self-btn bg s_btn">
button = browser.find_element_by_id('su')
# 暂停一下,免得太快你看不见
time.sleep(3)
# 点击按钮进行搜索
button.click()
time.sleep(3)
# 退出浏览器
browser.quit()