• python爬虫-Selenium


    一、Selenium简介

    Selenium是一个用于Web应用程序测试的工具,Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样。模拟浏览器功能,自动执行网页中的js代码,实现动态加载。

    二、环境配置

    1、查看本机电脑谷歌浏览器的版本。

    打开谷歌浏览器-->右上角三个点-->帮助-->关于

    2、下载谷歌浏览器的驱动

    下载地址:http://chromedriver.storage.googleapis.com/index.html

    找到对应浏览器版本驱动

     3、安装selenium

    pip install selenium

     三、使用

    1、旧版本使用

    1. from selenium import webdriver
    2. path = 'chromedriver.exe'
    3. browser = webdriver.Chrome(path)
    4. url = 'https://www.baidu.com'
    5. browser.get(url)
    6. # 元素定位
    7. # 根据id来找到对象
    8. button = browser.find_element_by_id('su')
    9. print(button)
    10. # 根据标签属性的属性值来获取对象的
    11. button = browser.find_element_by_name('wd')
    12. print(button)
    13. # 根据xpath语句来获取对象
    14. button = browser.find_elements_by_xpath('//input[@id="su"]')
    15. print(button)
    16. # 根据标签的名字来获取对象
    17. button = browser.find_elements_by_tag_name('input')
    18. print(button)
    19. # 使用的bs4的语法来获取对象
    20. button = browser.find_elements_by_css_selector('#su')
    21. print(button)
    22. button = browser.find_element_by_link_text('直播')
    23. print(button)

    2、新版本使用

    1. from selenium import webdriver
    2. from selenium.webdriver.chrome.service import Service
    3. from selenium.webdriver.common.by import By
    4. # driver=webdriver.Chrome(executable_path='chromeselenium/chromedriver')
    5. # 改为
    6. service = Service(executable_path='chromedriver')
    7. driver = webdriver.Chrome(service=service)
    8. # inputTag = driver.find_element_by_id("value") # 利用ID查找
    9. # 改为:
    10. inputTag = driver.find_element(By.ID, "value")
    11. # inputTags = driver.find_element_by_class_name("value") # 利用类名查找
    12. # 改为:
    13. inputTag = driver.find_element(By.CLASS_NAME, "value")
    14. # inputTag = driver.find_element_by_name("value") # 利用name属性查找
    15. # 改为:
    16. inputTag = driver.find_element(By.NAME, "value")
    17. # inputTag = driver.find_element_by_tag_name("value") # 利用标签名查找
    18. # 改为:
    19. inputTag = driver.find_element(By.TAG_NAME, "value")
    20. # inputTag = driver.find_element_by_xpath("value") # 利用xpath查找
    21. # 改为:
    22. inputTag = driver.find_element(By.XPATH, "value")
    23. # inputTag = driver.find_element_by_css_selector("value") # 利用CSS选择器查找
    24. # 改为:
    25. inputTag = driver.find_element(By.CSS_SELECTOR, "value")

    四、交互案例

    1. from selenium import webdriver
    2. from selenium.webdriver.chrome.service import Service
    3. from selenium.webdriver.common.by import By
    4. # 创建浏览器对象
    5. path = 'chromedriver.exe'
    6. service = Service(executable_path=path)
    7. browser = webdriver.Chrome(service=service)
    8. # url
    9. url = 'https://www.baidu.com'
    10. browser.get(url)
    11. import time
    12. time.sleep(2)
    13. # 获取文本框的对象
    14. # input = browser.find_element_by_id('kw')
    15. input = browser.find_element(By.ID, 'kw')
    16. # 在文本框中输入周杰伦
    17. input.send_keys('周杰伦')
    18. time.sleep(2)
    19. # 获取百度一下的按钮
    20. # button = browser.find_element_by_id('su')
    21. button = browser.find_element(By.ID, 'su')
    22. # 点击按钮
    23. button.click()
    24. time.sleep(2)
    25. # 滑到底部
    26. js_bottom = 'document.documentElement.scrollTop=100000'
    27. browser.execute_script(js_bottom)
    28. time.sleep(2)
    29. # 获取下一页的按钮
    30. # next = browser.find_element_by_xpath('//a[@class="n"]')
    31. next = browser.find_element(By.XPATH, '//a[@class="n"]')
    32. # 点击下一页
    33. next.click()
    34. time.sleep(2)
    35. # 回到上一页
    36. browser.back()
    37. time.sleep(2)
    38. # 回去
    39. browser.forward()
    40. time.sleep(3)
    41. # 退出
    42. browser.quit()

  • 相关阅读:
    STP切换测试_组网实验
    多维数据可视化技术,Radviz可视化原理,向量化的 Radviz(vectorized Radviz,简称 VRV)
    编程为什么要使用设计模式?使用设计模式的好处有哪些?
    算法导论习题—二叉搜索树、红黑树、区间树
    竞赛选题 基于深度学习的人脸表情识别
    如何实现基于场景的接口自动化测试用例?来看看大佬的方案
    【C++】:类和对象(上)
    OA协同系统适合哪些企业
    【设计模式】【第一章】【支付场景】【策略模式 + 工厂模式 + 门面模式 + 单例模式】
    React 组件:计时器例子
  • 原文地址:https://blog.csdn.net/qq_62594984/article/details/132628119