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

 更新时间:2024年02月24日 10:51:47   投稿:yin  
selenium是一个自动测试工具,它可以帮我通过代码去实现驱动浏览器自动执行相应的操作,所以我们也可以用它来做爬虫,主要使用selenium的目的是为了跳过登录验证,这篇文章主要介绍了selenium的使用过程记录,已经常用API接口(包括自动登录)
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

什么是Selenium

Selenium是一个自动化测试工具,对各种浏览器都能很好地支持,包括Chrome、Firefox这些主流浏览器。使用它就可以模拟浏览器进行各种各样的操作,包括爬取一些网页内容。当你看到浏览器自己运行并且在网页上翻页或者跳转的时候,应该会觉得很有趣的。
安装selenium先安装好Selenium库和对应浏览器的WebDriver驱动,比如我用的是Chrome,则相对应安装的是ChromeDriver。
1.安装selenium # 打开命令控制符执行 pip install selenium
2.我的Google Chrome 已是最新版本版本 74.0.3729.108(正式版本) (64 位)
安装三大浏览器驱动driver
1.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.zip
D:\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?的24个编程超好用技巧

    分享Python?的24个编程超好用技巧

    这篇文章主要给大家分享Python?的24个编程超好用技巧,下面分享一些python技巧和?tips,这些技巧将根据其首字母按?A-Z?的顺序进行展示,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-02-02
  • 一文读懂Python 枚举

    一文读懂Python 枚举

    这篇文章主要介绍了Python 枚举的相关资料,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-08-08
  • Python 转换时间戳为指定格式日期

    Python 转换时间戳为指定格式日期

    这篇文章主要为大家介绍了Python转换时间戳,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • python实现按任意键继续执行程序

    python实现按任意键继续执行程序

    本文给大家分享的是如何使用Python脚本实现按任意键继续执行程序的代码,非常的简单实用,有需要的小伙伴可以参考下
    2016-12-12
  • Pytorch实现神经网络的分类方式

    Pytorch实现神经网络的分类方式

    今天小编就为大家分享一篇Pytorch实现神经网络的分类方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • python基础之并发编程(二)

    python基础之并发编程(二)

    这篇文章主要介绍了详解python的并发编程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-10-10
  • Python机器学习NLP自然语言处理基本操作电影影评分析

    Python机器学习NLP自然语言处理基本操作电影影评分析

    本文是Python机器学习NLP自然语言处理系列文章,带大家开启一段学习自然语言处理 (NLP) 的旅程。本篇文章主要学习NLP自然语言处理基本操电影影评分析
    2021-09-09
  • 如何利用Fabric自动化你的任务

    如何利用Fabric自动化你的任务

    大家都知道Fabric是一个Python库,可以通过SSH在多个host上批量执行任务。你可以编写任务脚本,然后通过Fabric在本地就可以使用SSH在大量远程服务器上自动运行。这些功能非常适合应用的自动化部署,或者执行系统管理任务。本文将介绍如何利用Fabric自动化你的任务。
    2016-10-10
  • python列表推导式实现找出列表中长度大于5的名字

    python列表推导式实现找出列表中长度大于5的名字

    这篇文章主要介绍了python列表推导式实现找出列表中长度大于5的名字,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Python随机生成迷宫游戏的代码示例

    Python随机生成迷宫游戏的代码示例

    本文主要介绍了Python随机生成迷宫游戏的代码示例,Python可以通过生成二维数组模拟迷宫的结构,使用深度优先搜索和广度优先搜索等算法找到通路,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07

最新评论

?


http://www.vxiaotou.com