selenium模块
基本使用
from selenium.webdriver import Chrome
# 导入自定义配置模块
from selenium.webdriver.chrome.options import Options
# 创建配置对象
chrome_options = Options()
# 谷歌文档提到需要加上这个属性来规避bug
chrome_options.add_argument('--disable-gpu')
# 不加载图片,可以提升速度
chrome_options.add_argument('blink-settings=imagesEnabled=false')
# 浏览器不提供可视化页面,Linux下如果系统如果无界面不加这条会启动失败
chrome_options.add_argument('--headless')
# 取消浏览器驱动提示
chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])
# 如果驱动路径设置到环境遍历中,可以不用传参数
# options 表示配置项
driver = Chrome(options=chrome_options)
# 访问百度
driver.get("https://www.baidu.com")
# 获取页面源码
text = driver.page_source
print(text)
解析数据
from selenium.webdriver import Chrome
driver = Chrome()
driver.get("https://www.baidu.com")
# selenium提供了很多用于解析数据的函数
# tag = driver.find_element_by_class_name("index-logo-src")
# tag = driver.find_element_by_css_selector(".index-logo-src")
# print(tag.text)
# 得到的是driver对象,不是父标签
# print(tag.parent)
# print(tag.get_attribute("src"))
# print(tag.tag_name)
# 一些特别的查找方式
# 根据链接的文本查找,文本完全匹配
# tag = driver.find_element_by_link_text("学术")
# 根据链接的文本查找,文本部分匹配
# tag = driver.find_element_by_partial_link_text("术")
# print(tag)
# name属性等于tj_trhao123
# tag = driver.find_element_by_name("tj_trhao123")
# 标签名称等于body
# tag = driver.find_element_by_tag_name("body")
# print(tag)
# print(tag.tag_name,tag.get_attribute("href"),tag.text)
#所有方法都有带s的版本 用来查找所有匹配的 返回一个列表
# res = driver.find_elements_by_class_name("mnav")
# print(res)
# 嵌套查找
# tag = driver.find_element_by_name("tj_trhao123")
# tag2 = tag.find_element_by_tag_name("a")
# 与显示相关的属性
tag = driver.find_element_by_class_name("index-logo-src")
print(tag.location)
print(tag.size)
等待元素加载
from selenium.webdriver import Chrome
from selenium.webdriver.common.keys import Keys
fr