-
安装selenium
- pip install selenium
-
下载浏览器的驱动程序
- 下载链接:https://chromedriver.storage.googleapis.com/index.html
- 下载后,解压到相关文件夹下,记住路径,在下面的实例化浏览器对象时使用
-
实例化一个浏览器对象
-
编写基于浏览器自动化操作代码
- 发起请求:get(url)
- 标签定位:find系列的方法
- 标签交互:send_keys(’’)
- 执行js程序:excute_script(’’)
- 前进后退:forward(),back()
- 退出:quit()
from selenium import webdriver # 实例化一个浏览器对象,传入浏览器驱动 bro=webdriver.Chrome(executable_path='./chromedriver.exe') # 让浏览器发起一个指定url对应请求 bro.get('https://taobao.com') # 定位id=q search_input=bro.find_element_by_id('q') # 自动化键入信息 search_input.send_keys('花') # 执行脚本 bro.execute_script('window.scrollTo(0,document.body.scrollHeight)') # 定位点击标签,并执行点击 btn=bro.find_element_by_css_selector('.btn-search') btn.click() bro.get('https://baidu.com') # 后退 bro.back() bro.quit()
-
处理iframe
- 如果定位的标签存在于iframe标签中,必须使用switch——_to.frame(id)
- 动作链(拖动):from selenium.webdriver import ActionChains
- 实例化一个动作链对象:action=ActionChains(bro)
- action.click_and_hold(div):长按且点击操作
- move_by_offset(x,y):
- perform():动作链立即执行
- action.release():释放动作链对象
from selenium import webdriver # 导入动作链对应的类 from selenium.webdriver import ActionChains # 实例化一个浏览器对象,传入浏览器驱动 bro=webdriver.Chrome(executable_path='./chromedriver.exe') # 让浏览器发起一个指定url对应请求 bro.get('https://taobao.com/') # 如果定位的标签存在于iframe标签中的则必须通过以下操作进行标签定位 bro.switch_to.frame('iframeResult')# 切换浏览器标签定位的作用域 div=bro.find_element_by_id('iframe_id') # 定位到作用域 # 动作链 # 实例化动作链 action=ActionChains(bro) # 点击长按指定的标签 action.click_and_hold(div) for i in range(5): # perform() 立即执行动作链操作 action.move_by_offset(17,0).perform() # move_by_offset(x,y):x水平方向,y竖直方向 sleep(0.3) # 释放动作链 action.release() bro.quit()
-
设置为无可视化界面
from selenium import webdriver from selenium.webdriver.chrome.options import Options # 设置无可视化界面 chrome_options=Options() chrome_options.add_argument('--headeless') chrome_options.add_argument('--disable-gpu') # 实例化一个浏览器对象,传入浏览器驱动 bro=webdriver.Chrome(executable_path='./chromedriver.exe',chrome_options=chrome_options) # 让浏览器发起一个指定url对应请求 bro.get('https://taobao.com/') bro.quit()
-
实现selenium规避被检测到的风险
from selenium import webdriver # 实现无可视化界面的类 from selenium.webdriver.chrome.options import Options # 实现规避检测 from selenium.webdriver import ChromeOptions # 设置无可视化界面 chrome_options=Options() chrome_options.add_argument('--headeless') chrome_options.add_argument('--disable-gpu') # 实现规避检测 option=ChromeOptions() option.add_experimental_option('excludeSwitches',['enable-automation']) # 实例化一个浏览器对象,传入浏览器驱动 bro=webdriver.Chrome(executable_path='./chromedriver.exe',chrome_options=chrome_options,options=option) # 让浏览器发起一个指定url对应请求 bro.get('https://taobao.com/') bro.quit()
-
相关视频讲解
- 安装与配置视频教程
- 相关工具包的使用与反爬机制绕过
- 反爬机制破除-UA伪装与代理配置
- 图片懒加载的破除–selenium的引入
- 爬虫实战-爬取免费代理网站
- 常见的反爬机制
selenium使用方法
最新推荐文章于 2024-06-19 22:06:35 发布