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()
-