一、网页搜索自动化
1.引入库
代码如下(示例):
from selenium import webdriver
from time import sleep
import threading
from selenium.webdriver.chrome.service import Service # 新版本调用方法
from selenium.webdriver.common.by import By # 新版本调用方法
2.定义函数
代码如下(示例):
# 旧版调用方法
# driver = webdriver.Chrome(executable_path='./chromedriver')
# driver = webdriver.Firefox(executable_path='./geckodriver')
# driver = webdriver.Chrome(executable_path='./chromedriver') #创建浏览器对象,打开浏览器
# driver.maximize_window() #窗口最大化
# driver.get('https://mail.qq.com/') #打开qq邮箱
#获取driver
#方法1
s = Service('./chromedriver') #新版调用方法
driver = webdriver.Chrome(service=s)
# #方法2
# cap = {"browserName":"chrome","platform":"LINUX"}
# driver = webdriver.Remote("http://..//hub",cap) #hub获取driver的方法
# # 1.封装百度
def get_baidu(driver):
# 打开url
driver.get('http://www.baidu.com')
# 旧版调用对应元素方法
# # 输入python
# driver.find_element_by_id('kw').send_keys('python')
# # 点击搜索按钮
# driver.find_element_by_id('su').click()
# # 新版调用对应元素方法
# 输入python
driver.find_element(By.ID,'kw').send_keys('python')
# 点击搜索按钮
driver.find_element(By.ID,'su').click()
# 暂停3秒
sleep(3)
driver.quit()
# # 2. 封装driver
def get_driver(browser):
# 定义控变量
cap = None
#判断浏览器类型
if browser == 'chrome':
cap = webdriver.DesiredCapabilities.CHROME.copy()
elif browser == 'firebox':
cap = webdriver.DesiredCapabilities.FIREFOX.copy()
#修改默认平台名称
cap['platform'] = "LINUX"
#返回 driver
return webdriver.Chrome(service=s)
3.调用函数遍历浏览器列表
代码如下(示例):
# # 3.遍历多线程
# 定义浏览器列表
browserName = ['chrome','firebox']
# 遍历浏览器列表
for browser in browserName:
driver = get_driver(browser)
threading.Thread(target=get_baidu, args=(driver,)).start()
总结
1.在定义函数时,注意代码的缩进;
2.在使用旧版本进行驱动调用时,会报出相应警告,使用新版本调用无警告。