官网链接:http://selenium-python.readthedocs.io/api.html#module-selenium.common.exceptions
seleniums设置位:https://www.cnblogs.com/youngleesin/p/10692352.html
在代码中使用slenium
导入模块:
from selenium import webdriver
创建Chrome的webdriver对象
driver = webdriver.Chrome() 如果是Windows()中传入driver的路径: “c:…/pantomjs.exe”
发送请求
driver.get(“http://www.baidu.com/”)
根据id定位元素并进行操作
driver.find_element_by_id(“kw”).send_keys(“python”) # 找到id为kw的输入框, 填写: python
driver.find_element_by_id(“su”).click() # 找到id为su的, 进行单击
退出
driver.close() #关闭当前窗口(选项卡)
driver.quit() #清除缓存退出浏览器
slenium定位元素及常规操作
定位元素用法:
el = 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(根据class属性对应值范围元素列表, 如果没有返回空列表)
find_elements_by_css_selector(根据css选择器返回元素列表, 如果没有返回空列表)
c 注意点1:
find_element 和find_elements的区别:
find_element: 返回找到第一个元素,如果没有报错
find_elements: 返回找到的所有元素列表, 如果没有找到返回空列表
注意点2:
by_link_text和by_partial_link_text的区别:
by_link_text: 全部文本都一样
by_partial_link_text: 包含某个文本
注意点3
by_xpath只能获取元素, 要获取属性和文本需要使用get_attribute(属性名) 和.text
slenium 深入使用指南
读取cookie:
读取所有cookie:driver.get_cookies()
读取指定cookie:driver.get_cookie(name)
添加cookie:
driver.add_cookie(dict)
删除cookie:
删除所有cookie:driver.delete_all_cookies()
删除指定cookie:driver.delete_cookie(name)
模拟行为
send_keys是往可以输入内容的标签中输入数据:el.send_keys(“待输入的数据”)
可以点击的元素:el.click()
获取响应数据:
res = driver.page_source # 获取页面的源码
cookie = driver.get_cookies() # 获取cookie信息
url = driver.current_url # 获取当前的URL
设置请求头选项
创建设置对象
options = webdriver.ChromeOptions()
1.更换头部
options.add_argument(‘user-agent=“Mozilla/5.0 (iPod; U; CPU iPhone OS 2_1 like Mac OS X; ja-jp) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5F137 Safari/525.20”’)
注意:此处的user-agent必须是小写, 否则不生效
2 添加代理
options.add_argument("–proxy-server=http://117.32.106.8:8080")
注意:=两边不能有空格,不能是这样–proxy-server = http://117.32.106.8:8080
验证代理是否生效:
driver.get(“http://httpbin.org/get”)
print(driver.page_source)
让设置的选项生效
driver = webdriver.Chrome(options=options)