每日分享:
一个人的行为和品格。能够给另一个人带来的心灵的震撼和扭转,是这个世界上最强大的力量吧,它唤醒了朴福子心底尚存的良知
- 了解driver对象的常用属性和方法
- 掌握driver对象定位标签元素获取标签对象的方法
- 掌握标签对象提取文本和属性值的方法
在使用selenium过程中,实例化driver对象后,driver对象有一些常用的属性和方法
- driver.page_source:当前标签页浏览器渲染之后的网页代码
- driver.current_url:当前标签页的url(响应对应的url)
- driver.close():关闭当前标签页,如果只有一个标签页则关闭整个浏览器
- driver.quit():关闭浏览器
- driver.forward():页面前进
- driver.back():页面后退
- driver.save_screenshot(img_name):页面截图
- driver.title:页面标题
from selenium import webdriver
url = 'http://www.baidu.com'
# 创建一个driver对象
driver = webdriver.Chrome()
# 发送请求
driver.get(url)
print(driver.page_source)
print(driver.current_url)
print(driver.title)
driver.get('http://www.douban.com')
driver.back()
driver.forward()
driver.save_screenshot('douban.png')
# driver.close()
driver.quit()
部分结果如下:
豆瓣截图如下:
find_element():
定位到的是一个对象,定位不到则报错
find_elements():
定位到则是一个含有元素的列表,定位不到则是一个空列表
2.1 find_element()from selenium import webdriver
url = 'http://www.baidu.com'
driver = webdriver.Chrome()
driver.get(url)
# 通过xpath进行元素定位(copy->xpath)
# driver.find_element('xpath', '//*[@id="kw"]').send_keys('python')
# 通过css选择器进行元素定位(copy->selector)
# driver.find_element('css selector', "#kw").send_keys('python')
# 通过name属性值进行元素定位
# driver.find_element('name', 'wd').send_keys('python')
# 通过class属性值进行元素定位
# driver.find_element('class name', 's_ipt').send_keys('python')
# 通过id值进行元素定位
# driver.find_element('id', 'su').click()
# 通过链接文本进行元素定位
# driver.find_element_by_partial_link_text()
# driver.find_element('link text', 'hao123').click()
# 只搜索一部分就可以点进链接,是link text的高级版
driver.find_element('partial link text', 'hao').click()
下图箭头所指为链接文本:
from selenium import webdriver
url = 'https://tieba.baidu.com/f?ie=utf-8&kw=%E6%9E%97%E5%A4%95&fr=search'
driver = webdriver.Chrome()
driver.get(url)
el_list = driver.find_elements('xpath', '//*[@id="thread_list"]/li/div/div[2]/div[1]/div[1]/a')
for el in el_list:
print(el)
结果:
find_element仅仅能够获取元素,不能直接获取其中的数据,如果需要获取数据需要使用以下方法
- 对元素执行点击操作element.click()
- 对定位到的标签对象进行点击操作
- 向输入框输入数据element.send_keys(data)
- 对定位到的标签对象输入数据
- 获取文本element.text
- 通过定位获取的标签对象的text属性,获取文本内容
- 获取属性值element.get_attribute(‘属性名’)
- 通过定位获取的标签对象的get_attribute函数,传入属性名来获取属性的值
from selenium import webdriver
url = 'https://tieba.baidu.com/f?ie=utf-8&kw=%E6%9E%97%E5%A4%95&fr=search'
driver = webdriver.Chrome()
driver.get(url)
el_list = driver.find_elements('xpath', '//*[@id="thread_list"]/li/div/div[2]/div[1]/div[1]/a')
for el in el_list:
print(el.text, el.get_attribute('href'))
结果: