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