安装
pip install selenium
使用selenium需要下载chromedriver谷歌内核http://chromedriver.storage.googleapis.com/index.html
选择浏览器合适的版本,然后添加到环境变量中,这里我就直接放在python的目录里面,以为python添加过了环境变量
基本使用
from selenium import webdriver
try:
# 进行无头配置
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--disable-gpu')
options.add_argument('--no-sandbox')
# 初始化浏览器
browser = webdriver.Chrome(options=options)
url = 'http://www.baidu.com'
browser.get(url)
print(browser.page_source)
finally:
# 注意这里一定要关,不然服务器上会很多
browser.close()
选择器
browser.find_element_by_id('')
browser.find_element_by_class_name('')
selenium提供的选择器很多,不过常用的就几个,需要的时候看一下就可以了
元素交互
# 获取元素
input = browser.find_element_by_id('s')
# 给元素发送消息
input.send_keys('Python')
# 回车操作
input.send_keys(Keys.ENTER)
# 点击事件
input.click()
# 清除消息
input.clear()
执行JavaScript
# 可以直接执行js代码
browser.execute_script('alert("直接执行js")')
获取元素文本值和属性
# 获取元素
name = browser.find_element_by_id('s')
# 获取元素的文本值
print(name.text)
# 获取元素的属性
print(name.get_attribute('href'))
保存cookies并使用requests添加cookies
# selenium获取cookies
cookies = browser.get_cookies()
# 保存cookies
with open('保存地址', 'w', encoding='utf-8') as file:
json.dump(self.cookies, file)
------------------------------------------------------
# 获取cookies
cookies = dict()
with open('保存地址', 'r') as f:
items = json.load(f)
for i in items:
cookies[i['name']] = i['value']
# 添加请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36'}
# 添加传递的参数
data = {
"page": "1",
"limit": "100",
"domain": "smt.dev",
"act": "status.list",
"argJson": '''{"code":null,"groupId":"1000106","officeId":null,"onlineStatus":"0"}'''
}
# 解析传递的参数
data = urllib.parse.urlencode(data)
# 使用requests发送请求
response = requests.get(url='https://smt.wensgx.com/cmd/app.domain.exec?process&json', headers=headers,
params=data, cookies=cookies)
显示等待
这个操作之前用过,但是不好用,可能自己的使用方法不对,总之就是没有使用过这个操作了,这里以后需要再去查询资料
selenium的操作还有很多,毕竟是一个测试的东西,不过掌握这些谢谢爬虫就可以了