加载网页: selenium通过控制浏览器,所以对应的获取的数据都是elements中的内容
from selenium import webdriver
driver = webdriver.PhantomJS(“c:…/pantomjs.exe”)
driver.get("http://www.baidu.com/")
driver.save_screenshot("长城.png")
定位和操作:
driver.find_element_by_id(“kw”).send_keys(“长城”)
driver.find_element_by_id("su").click()
查看请求信息:
driver.page_source
driver.get_cookies()
driver.current_url
退出
driver.close() #退出当前页面
driver.quit() #退出浏览器
定位元素语法:
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仅仅能够获取元素,不能顾直接获取其中的数据,
find_element_by_xapth
也是这样 - 获取文本:
element.text
- 获取属性值:
element.get_attribute("href")
selenium 处理cookie
通过driver.get_cookies()
能够获取所有的cookie
# 把cookie转化为字典
{cookie[‘name’]: cookie[‘value’] for cookie in driver.get_cookies()}
#删除一条cookie
driver.delete_cookie("CookieName")
# 删除所有的cookie
driver.delete_all_cookies()
使用selenium切换frame:
frame是html中常用的一种技术,即一个页面中嵌套了另一个网页,selenium默认是访问不了frame中的内容的,对应的解决思路是 driver.switch_to.frame()