selenium常用API的使用过程记录(包括自动登录)

2024-03-04 0 201
目录
  • 什么是Selenium
  • 为什么要使用selenium
  • Python的selenium爬虫的简单使用过程记录
    • 1.导入selenium 库
    • 2.设置参数
    • 3.实例化
    • 4.输入网址
    • 5.定位元素
    • 6.关闭浏览器
  • 常用API
    • 初始化WebDriver
    • 打开和关闭网页
    • 查找元素
    • 与元素进行交互
    • 等待元素
    • 处理下拉菜单
    • 执行JavaScript
    • 处理Alerts、Frames和Windows
    • 获取属性和CSS属性
  • 利用Selenium进行自动登录
    • 总结

      什么是Selenium

      Selenium是一个自动化测试工具,对各种浏览器都能很好地支持,包括Chrome、Firefox这些主流浏览器。使用它就可以模拟浏览器进行各种各样的操作,包括爬取一些网页内容。当你看到浏览器自己运行并且在网页上翻页或者跳转的时候,应该会觉得很有趣的。安装selenium先安装好Selenium库和对应浏览器的WebDriver驱动,比如我用的是Chrome,则相对应安装的是ChromeDriver。1.安装selenium # 打开命令控制符执行 pip install selenium2.我的Google Chrome 已是最新版本版本 74.0.3729.108(正式版本) (64 位)安装三大浏览器驱动driver1.chromedriver 下载地址:http://chromedriver.storage.googleapis.com/index.html?path=74.0.3729.6/2.Firefox的驱动geckodriver 下载地址:https://github.com/mozilla/geckodriver/releases/3.IE的驱动IEdriver 下载地址:http://www.nuget.org/packages/Selenium.WebDriver.IEDriver/注意:64位向下兼容,直接下载32位的就可以啦,亲测可用。chromedriver_win32.zipD:\\Python\\python\\Scripts.粘贴chromedriver.exe到文件d:\\Python37\\Scripts路径下。如果Chrome问题闪退 ,不兼容问题!

      为什么要使用selenium?

      selenium是一个自动测试工具,它可以帮我通过代码去实现驱动浏览器自动执行相应的操作。所以我们也可以用它来做爬虫。主要使用selenium的目的是为了跳过登录验证。

      Python的selenium爬虫的简单使用过程记录

      0.预先准备~首先下载谷歌浏览器,然后点击设置选项那里的帮助—关于Google Chrome,点进去看浏览器的版本号,或者在谷歌浏览器输入chrome://version/ 进行查看;~然后下载驱动,驱动地址:http://chromedriver.storage.googleapis.com/index.html~将驱动chromedriver.exe所在的文件夹的路径添加到电脑的环境变量中,或者直接放在py文件运行的目录下

      1.导入selenium 库

      from selenium import webdriver

      2.设置参数

      chrome_options = webdriver.ChromeOptions()
      chrome_options.add_experimental_option(\’prefs\’, {\’profile.default_content_setting_values\’: {\’images\’: 2, }}) # 设置浏览器无图片模式
      chrome_options.add_argument(f\’–proxy-server=200.200.200.52:8888\’) #设置代理ip,这个是我随便写的ip

      3.实例化

      chrome = webdriver.Chrome(options=chrome_options) # 创建selenium实例化

      4.输入网址

      chrome.get(\’https://www.baidu.com/\’)

      5.定位元素

      chrome.find_element_by_xpath(\’//*[@id=\”kw\”]\’) #定位好元素,主要是却定要做什么,这一步可以不要
      chrome.find_element_by_xpath(\’//*[@id=\”kw\”]\’) .send_keys(\’白某人\’) #send_keys 主要是用来在输入框输入内容
      chrome.find_element_by_link_text(\’百度一下\’).click() # click 方法是点击
      #定位元素的方法有很多,但是要注意点的是find_element 后面有没有s,有s的话是返回一个列表的

      6.关闭浏览器

      chrome.close()

      常用API

      初始化WebDriver

      首先,我们需要创建一个WebDriver实例,它是与浏览器进行交互的主要接口。

      from selenium import webdriver
      driver = webdriver.Chrome(\’/path/to/chromedriver\’) # 若已设置环境变量,可省略路径

      打开和关闭网页

      driver.get(\’https://www.example.com\’) # 打开网页
      print(driver.title) # 获取网页标题
      driver.quit() # 关闭浏览器并退出WebDriver会话

      查找元素

      在网页中查找元素是自动化过程的基础。

      from selenium.webdriver.common.by import By
      element_by_id = driver.find_element(By.ID, \’some-id\’)
      element_by_name = driver.find_element(By.NAME, \’some-name\’)
      element_by_xpath = driver.find_element(By.XPATH, \’//div[@class=\”some-class\”]\’)
      element_by_css = driver.find_element(By.CSS_SELECTOR, \’div.some-class\’)

      与元素进行交互

      找到元素后,我们可以与它进行各种交互,如点击、输入文本等。

      # 输入文本
      search_box = driver.find_element(By.NAME, \’q\’)
      search_box.send_keys(\’Selenium\’)
      # 点击按钮
      search_button = driver.find_element(By.NAME, \’btnK\’)
      search_button.click()
      # 清空文本框
      search_box.clear()

      等待元素

      Web自动化中,等待某个条件的成立是常见需求,以确保元素已加载。

      from selenium.webdriver.support.ui import WebDriverWait
      from selenium.webdriver.support import expected_conditions as EC
      # 显示等待
      element = WebDriverWait(driver, 10).until(
      EC.presence_of_element_located((By.ID, \’some-id\’))
      )
      # 隐式等待
      driver.implicitly_wait(10) # 设置全局等待时间

      处理下拉菜单

      下拉菜单是表单常见元素,Selenium提供了Select类来处理它们。

      from selenium.webdriver.support.ui import Select
      select_element = driver.find_element(By.ID, \’dropdown\’)
      select_object = Select(select_element)
      select_object.select_by_index(1) # 通过索引选择
      select_object.select_by_value(\’value\’) # 通过value属性选择
      select_object.select_by_visible_text(\’Text\’) # 通过可见文本选择

      执行JavaScript

      有时直接使用JavaScript执行操作是必要的。

      driver.execute_script(\’window.scrollTo(0, document.body.scrollHeight);\’) # 滚动到底部

      处理Alerts、Frames和Windows

      Selenium可以处理JavaScript弹窗、iFrames和新窗口。

      # 处理Alert弹窗
      alert = driver.switch_to.alert
      alert_text = alert.text
      alert.accept() # 点击\’OK\’
      # 切换到iFrame
      driver.switch_to.frame(\’frameName\’)
      # 切换回主文档
      driver.switch_to.default_content()
      # 切换窗口
      driver.switch_to.window(driver.window_handles[1])

      获取属性和CSS属性

      有时我们需要获取元素的属性或者CSS属性。

      attr_value = element.get_attribute(\’href\’)
      css_value = element.value_of_css_property(\’color\’)

      利用Selenium进行自动登录

      以下是一个利用Selenium进行自动登录的例子。

      from selenium import webdriver
      from selenium.webdriver.common.by import By
      from selenium.webdriver.common.keys import Keys
      driver = webdriver.Chrome(\’/path/to/chromedriver\’)
      driver.get(\’https://www.somewebsite.com/login\’)
      # 填写用户名和密码
      username = driver.find_element(By.ID, \’username\’)
      password = driver.find_element(By.ID, \’password\’)
      username.send_keys(\’your_username\’)
      password.send_keys(\’your_password\’)
      # 点击登录
      login_button = driver.find_element(By.ID, \’submit\’)
      login_button.click()
      # 等待登录成功的页面元素加载
      wait = WebDriverWait(driver, 10)
      logged_in_element = wait.until(EC.presence_of_element_located((By.ID, \’logged-in-message\’)))
      print(\’登录成功!\’)
      # 执行后续的自动化操作…
      # 关闭浏览器
      driver.quit()

      在这个例子中,我们自动化了登录过程,包括填写认证信息和提交表单,然后等待登录成功消息的出现。

      总结

      Selenium是Python爬虫和自动化测试领域的强大工具。本篇博客中我们介绍了Selenium的常用API,这些API能帮助你模拟几乎所有的浏览器操作,从而使你能够构建出功能强大的自动化脚本。掌握这些API是提高爬虫效率和应对复杂页面的关键。

      您可能感兴趣的文章:

      • python selenium 获取标签的属性值、内容、状态方法
      • python selenium UI自动化解决验证码的4种方法
      • Python使用selenium实现网页用户名 密码 验证码自动登录功能
      • Python中使用 Selenium 实现网页截图实例

      收藏 (0) 打赏

      感谢您的支持,我会继续努力的!

      打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
      点赞 (0)

      悠久资源 Python selenium常用API的使用过程记录(包括自动登录) https://www.u-9.cn/jiaoben/python/183063.html

      常见问题

      相关文章

      发表评论
      暂无评论
      官方客服团队

      为您解决烦忧 - 24小时在线 专业服务