selenium提供的API
from selenium import webdriver
browser = webdriver.Chrome(executable_path='path') #若已将浏览器驱动添加到环境变量:/usr/bin,就不需要参数
browser.get(url) #进入页面,会等所偶遇元素都加载完再向下执行
browser.page_source #获取HTML页面源码
browser.page_source.find('字符串') #从页面源码中找你想要的字符串,返回值:当html中不存在该字符串时返回-1(经常用于判断是否抓到最后一页,抓到最后一页时让你的程序结束)
browser.quit() #关闭浏览器
#定位节点
#1. 单元素查找(1个节点对象)
browser.find_element_by_id('') #得到第一个符合你条件的节点对象,直接从页面结构中找,不怕动态的js影响xpath匹配
browser.find_element_by_name('')
browser.find_element_by_class_name('')
browser.find_element_by_xpath('')
browser.find_element_by_link_text('') #根据文本内容查找超链接
#2.多元素查找([节点对象列表])
browser.find_elements_by_id('') #得到一个列表,放一堆节点对象
browser.find_elements_by_name('')
browser.find_elements_by_class_name('')
browser.find_elements_by_xpath('')
browser.execute_script('javascript') #执行一些js脚本
#节点操作
ele.send_keys('') #搜索框发送内容
ele.click()
ele.text #获取文本内容,包含子节点和后代节点的文本内容
ele.get_attribute('src') #获取属性值
简单案例
from selenium import webdriver #导入selenium的webdriver接口打开浏览器
#1. 通过webdriver驱动器打开浏览器 --创建浏览器对象
options = webdriver.ChromeOptions()
#使用chrome浏览器并设置打开的浏览器窗口最大化
options.add_argument('--start-maximized')
browser = webdriver.Chrome(options=options)
#browser = webdriver.Firefox() #使用火狐,如果你没有将firefox驱动器加入环境变量/usr/bin,需要在该接口中加入参数:executable_path='浏览器driver路径'
#browser = webdriver.PhantomJS() #使用pantomJS
#2. 输入百度地址 --会等待页面中所有元素加载完成后才会继续执行下去
browser.get('http://www.baidu.com/')
#3. 找到搜索框节点,并在搜索框中发送你想搜的内容,比如:杨千嬅
#获取搜索框
kw = browser.find)element_by_xpath('//*[@id="kw"]') #参数为百度搜索框的xpath,获取方式:在页面搜索框中右键查看元素--复制xpath
#发送搜索内容
kw.send_keys('赵丽颖')
#4. 找到 百度以下 按钮,进行点击
su = browser.find_element_by_xpath('//*[@id="su"]')
su.click()
#5.关闭浏览器
time.sleep(5) #sleep5秒再关,否则直接关掉了
browser.quit()