selenium的简单使用

selenium简单学习

  1. 安装与介绍

    • selenium是一个自动化测试的工具,对于爬虫来说,主要使用selenium WebDriver,可以在本地或者远程计算机上驱动浏览器

    • 使用pip install selenium或者使用源码包进行安装

    • 首先下载浏览器驱动并配置环境变量

  2. 简单使用

    • 导入webdriver

      •  from selenium import webdriver
    • 启动驱动

      •  bro = webdriver.Chrome('chromedriver.exe')
    • 访问目标页面

      • bro.get(url) 只有get方法,网址必须包含http或者https

    • 延时方法

      • 绝对延时

        • time.sleep(1)

      • 隐形延时

        • bro.implicitly_wait(10)

        • 最长等待10秒,10秒后资源还是未加载,也直接执行后续代码,10秒类如果加载完成,直接执行后续代码

      • 显性等待,可设定轮询时间,每隔多少时间轮询一次

        • 了解即可

    • 定位标签

      •  btn = bro.find_element_by_xpath('//*[@id="lsform"]/div/div/table/tbody/tr[2]/td[3]/button')
         btn.click() 点击选中的按钮
         btn.get_attrbute(attr) 选中标签的属性,attr可以使class,value等各种标签的属性
      •  username_input = bro.find_element_by_id('ls_username')
         username_input.send_keys(username) #通过id定位输入框,通过send_keys发送输入的字符串
      •  bro.find_element_by_css_selector('#id') css选择器定位
         bro.find_element_by_class_name('red div') class进行查找
    • 保存屏幕

      •  bro.save_screenshot('main.png')
         bro.get_screenshot_as_file('screenshot.png')
    • 手动退出

      • bro.quit() 用完就退

    • 获取cookie

      •  bro.get_cookies()
    • 经验分享

      • 登录验证时由于用户电脑显示设置为125%缩放,所以定位坐标和获取到的图片大小都需要进行1.25倍数的放大,才能截取到正确的验证码

      • 有的网站做了很多的反扒机制,例如每次访问网页的验证码标签的id都有着随机字符串的后缀,使用xpath进行定位可能会比较麻烦,这时可以对id属性不变的父级或者更高级的标签进行定位,然后再定位到每次的随机字符串,获取字符串的值,再与验证码的xpath表达式进行拼接,这样就算每次的验证码标签的xpath表达式都不一样也能定位验证码位置

posted @ 2020-02-28 09:48  恰蜜小嘴  阅读(141)  评论(0编辑  收藏  举报