selenium使用方法

  • 安装selenium

    • pip install selenium
  • 下载浏览器的驱动程序

  • 实例化一个浏览器对象

  • 编写基于浏览器自动化操作代码

    • 发起请求: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的引入
    - 爬虫实战-爬取免费代理网站
    - 常见的反爬机制

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

锋年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值