常用语法
驱动常用方法
driver.maximize_window() # 最大化浏览器
driver.set_window_size(w,h) # 设置浏览器大小 单位像素
driver.set_window_position(x,y) # 设置浏览器位置
driver.back() # 后退操作
driver.forward() # 前进操作
driver.refresh() # 刷新操作
driver.close() # 关闭当前主窗口(主窗口:默认启动那个界面,就是主窗口)
driver.quit() # 关闭driver对象启动的全部页面
driver.get() #要打开的网址
driver.title # 获取当前页面title信息
driver.current_url # 获取当前页面url信息
driver.get_screenshot_as_file('截图.png')# 截图预览
driver.name # 浏览器名称
driver.page_source # 网页源码
延时等待
隐式等待
from selenium import webdriver #导包
driver = webdriver.Chrome() #获取浏览器驱动对象
driver.implicitly_wait(20) #隐示等待,传入等待时间,加载完成后立即下一步,不再等待--建议
强制等待
from time import sleep
sleep(2) #传入等待时间:强制等待
显式等待
from selenium.webdriver.support.wait import WebDriverWait # 导包
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
# WebDriverWait 需要传入的是驱动器对象,总体等待时间和刷新时间间隔时间间隔默认0.5
# Presence_of_element_located 表示元素是否存在 必须以元组的形式传入,所以使用到By方法进行定位
WebDriverWait(driver,30,0.5).until(EC.presence_of_element_located((By.ID,'kw')))
浏览器选项
options = webdriver.ChromeOptions() # 创建配置对象
options.add_argument('lang=zh_CN.UTF-8') # 设置中文
options.add_argument('--headless') # 无头参数,浏览器隐藏在后台运行
options.add_argument('--disable-gpu') # 禁用GPU加速
options.add_argument('--start-maximized') # 浏览器最大化
options.add_argument('--window-size=1920x1024') # 设置浏览器分辨率(窗口大小)
options.add_argument('--user-agent=""') # 设置请求头的User-Agent
options.add_argument('--incognito') # 隐身模式(无痕模式)
options.add_argument(f'--proxy-server={proxy}') # 添加IP代理 proxy=f"http://{ip}:{port}"
driver.set_page_load_timeout(20) # 设置连接超时20秒
options.add_experimental_option('detach', True) # 不自动关闭浏览器
driver = webdriver.Chrome(options=options) # 创建浏览器对象
driver.get('https://www.baidu.com')
By方法
# selenium 4.17.1
# chormedriver 120.0.6099.109
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By # ID检索数据
from selenium.common.exceptions import NoSuchElementException # 导入异常种类用于try
# 启动无界面引导
opt = webdriver.ChromeOptions()
opt.add_argument("--headless")
# 实例化WebDriver对象
wd = webdriver.Chrome(options=opt,service=Service(r'D:\ChormDriver\chromedriver-win64\chromedriver.exe'))
# webdriver获取网址
wd.get('https://www.byhy.net/_files/stock1.html') # http请求
# 根据ID获取元素
stock_input = wd.find_element(By.ID, 'kw') # 返回对象的句柄
stock_input.send_keys('通讯') # 发送数据
stock_sear = wd.find_element(By.ID, 'go')
stock_sear.click()
wd.implicitly_wait(30) # 隐性等待30s,等待网页加载
# 根据class name获取元素
stockname_list = wd.find_elements(By.CLASS_NAME,'result-item') # 返回所有的对象列表
if len(stockname_list) == 0:
print("没有获取到任何对象,程序退出")
exit()
else:
for item in stockname_list: # 获取对象的文本内容
print(item.text)
# 退出
wd.close()
# 程序运行完会自动关闭浏览器,就是很多人说的闪退
# 这里加入等待用户输入,防止闪退
input('等待回车键结束程序')
程序打包
pip install pyinstaller //安装插件
pyinstaller 定位元素.py //开始打包
注意exe程序的位置不能移动,否则无法加载外部库。
标签:webdriver,浏览器,Python,Selenium,driver,爬虫,add,options,selenium From: https://www.cnblogs.com/YiMo9929/p/17986033