1 加载网页:
selenium通过控制浏览器,所以对应的获取的数据都是elements中的内容
from selenium import webdriver
# 指定driver的绝对路径
# driver = webdriver.PhantomJS(executable_path='/home/worker/Desktop/driver/phantomjs')
driver = webdriver.Chrome(executable_path='/home/worker/Desktop/driver/chromedriver')
# 向一个url发起请求
driver.get("http://www.itcast.cn/")
# 把网页保存为图片
driver.save_screenshot("itcast.png")
# 退出模拟浏览器
driver.quit() # 一定要退出!不退出会有残留进程!
小结
selenium的导包:from selenium import webdriver
selenium创建driver对象:webdriver.PhantomJS()
selenium请求数据:driver.get("http://www.baidu.com/")
selenium查看数据: driver.page_source
关闭无界面浏览器: driver.quit()
根据id定位元素: driver.find_element_by_id(“kw”)
操作点击事件: click()
给输入框赋值:send_keys()
1 selenium的定位操作
定位元素语法:
```python
find_element_by_id (返回一个元素)
find_elements_by_xpath (返回一个包含元素的列表)
find_elements_by_link_text (根据连接文本获取元素列表)
find_elements_by_partial_link_text (根据链接包含的文本获取元素列表)
find_elements_by_tag_name (根据标签名获取元素列表)
find_elements_by_class_name (根据类名获取元素列表)
获取数据语法
find_element仅仅能够获取元素,不能够直接获取其中的数据,如果需要获取数据需要使用以下方法:
- 获取文本:
element.text
- 获取属性值:
element.get_attribute("href")
小结
根据xpath定位元素: driver.find_elements_by_xpath("//*[@id='s']/h1/a")
根据class定位元素: driver.find_elements_by_class_name("box")
根据link_text定位元素: driver.find_elements_by_link_text("下载豆瓣 App")
根据tag_name定位元素: driver.find_elements_by_tag_name("h1")
获取文本内容: element.text
获取标签属性: element.get_attribute("href")