selenium

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() # 一定要退出!不退出会有残留进程!
 

小结

  1. selenium的导包:from selenium import webdriver
  2. selenium创建driver对象:webdriver.PhantomJS()
  3. selenium请求数据:driver.get("http://www.baidu.com/")
  4. selenium查看数据: driver.page_source
  5. 关闭无界面浏览器: driver.quit()
  6. 根据id定位元素: driver.find_element_by_id(“kw”)
  7. 操作点击事件: click()
  8. 给输入框赋值:send_keys()
     
  9. 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")
 

小结

  1. 根据xpath定位元素:    driver.find_elements_by_xpath("//*[@id='s']/h1/a")
  2. 根据class定位元素:    driver.find_elements_by_class_name("box")
  3. 根据link_text定位元素:     driver.find_elements_by_link_text("下载豆瓣 App")
  4. 根据tag_name定位元素:     driver.find_elements_by_tag_name("h1")
  5. 获取文本内容:    element.text
  6. 获取标签属性:     element.get_attribute("href")
原文地址:https://www.cnblogs.com/lab-zj/p/12166572.html