爬虫的一个重要的第三方库:Selenium

43 篇文章 7 订阅
35 篇文章 1 订阅

Selenium的安装

因为Selenium有许多环境库,所以使用pip install selenium安装可能会失败,推荐使用Anaconda下的命令conda install selenium来安装,安装成功后显示如下:
在这里插入图片描述
Python环境搭建请参考:Windows10下Anaconda3(Python3)安装方法

Selenium环境变量的配置

  • 因为selenium运行时需要指定执行驱动的路径,所以最好将驱动配置到环境变量中,这样可以方便代码的书写
  • 简单方法
    因为我们的Python环境Anaconda提供的,而Anaconda安装时是自动配置了环境变量的,所以可以把驱动放到Anaconda的安装目录下
    在这里插入图片描述
  • 复杂方法
    右键此电脑->属性->高级系统设置->环境变量->新建
    在这里插入图片描述

Selenium的使用

  • 我们来写个简单案例,使用selenium来模拟用户使用百度搜索
  • 效果图
    在这里插入图片描述
  • 源码
    from selenium import webdriver#导入selenium模块
    import time#导入时间模块
    driver = webdriver.Chrome()
    driver.get('https://www.baidu.com/')#打开百度
    input_text=driver.find_element_by_id("kw")#通过id名来查找标签
    input_text.send_keys('CoderYYN')#往输入框里面输入查询字词
    button=driver.find_element_by_id("su")#通过id名来查找标签
    button.click()#点击百度一下按钮
    time.sleep(5)#休眠5s为了看看效果
    text=button.get_attribute('value')#获取查询按钮上面的文字值
    print(text)
    driver.quit()#退出浏览器
    

Selenium的常用方法

  • 获取驱动对象
    driver = webdriver.Chrome()
  • 浏览器配置项
    from selenium.webdriver.chrome.options import Options
    options = Options()
    driver = webdriver.Chrome(options=options)
  • 加载用户配置文件
    options.add_argument(r'--user-data-dir=C:\Users\用户名\AppData\Local\Google\Chrome\User Data')
  • 无头模式
    options.add_argument('headless')
  • 开发者模式
    options.add_experimental_option('excludeSwitches',['enable-automation'])
  • 禁止加载图片
    prefs={"profile.managed_default_content_settings.images":2}
    options.add_experimental_option("prefs", prefs)
  • 浏览器窗口全屏
    driver.fullscreen_window
  • 最大化浏览器窗口
    driver.maximize_window()
  • 最小化浏览器窗口
    driver.minimize_window()
  • 设置网页加载等待时间
    driver.implicitly_wait(5)
  • 打开网页
    driver.get('https://www.baidu.com/')
  • 截图到文件的同级路径
    driver.save_screenshot('cs.png')
  • 获取当前标签页的源码
    driver.page_source
  • 刷新当前标签页
    driver.refresh()
  • 返回上一个页面
    driver.back()
  • 切换标签页
    all_handles=driver.window_handles
    driver.switch_to.window(all_handles[0])
  • 切换Iframe
    driver.switch_to.frame("xxx")
  • 查找单个元素
    • 根据标签的class属性查找标签
      driver.find_element_by_class_name('cs')
    • 根据标签的name属性查找标签
      driver.find_element_by_name('cs')
    • 根据标签的id属性查找标签
      driver.find_element_by_id('cs')
    • 根据标签的名称查找标签
      driver.find_element_by_tag_name('cs')
    • 根据xpath查找标签
      driver.find_element_by_xpath()
    • 根据CSS选择器查找标签
      driver.find_element_by_css_selector()
  • 查找多个元素
    • element后面加s即可
  • 对于标签对象
    • click()点击标签
    • text获取标签的值
    • get_attribute("src")获取标签的属性值
    • send_keys('内容')往标签里面输入内容
  • 关闭浏览器
    driver.quit()

总结

Selenium是个非常优秀且使用广泛的Web自动化测试工具,我们可以使用它来完成包括爬虫、抢票、测试等多种需求,灵活运用这个工具可以使我们的生活更加快捷便利。

我的个人博客网站是:www.coderyyn.cn
上面会不定期分享有关爬虫、算法、环境搭建以及有趣的帖子
欢迎大家一起交流学习

转载请注明

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值