selenium的简单使用

本文介绍了Selenium的基本使用,包括库的安装、浏览器驱动的选择与配置、如何声明并启动浏览器、访问网页、查找单个及多个元素、获取文本值以及浏览器的前进后退操作。通过实例展示了Selenium如何自动化网页交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考博客:https://www.cnblogs.com/zhaof/p/6953241.html
https://www.jianshu.com/p/234efc36f933
1、selenium库安装
在cmd页面输入pip install selenium

2、浏览器驱动安装
Chrome 版本:https://github.com/mozilla/geckodriver/releases
谷歌浏览器驱动和谷歌一一对应,如果安装的版本不匹配,后期代码在调用的时候会出错

3、声明浏览器对象

from selenium import webdriver

b = webdriver.Chrome()
b = webdriver.Firefox()

4、访问页面

from selenium import webdriver

b = webdriver.Chrome()

b.get("http://www.baidu.com")
print(b.page_source)
browser.close()

上述代码运行后,会自动打开Chrome浏览器,并登陆百度打印百度首页的源代码,然后关闭浏览器

5、查找单个元素
在这里插入图片描述
这是百度首页的输入框的属性
在这里插入图片描述
这是百度首页右上角“新闻”的属性

#通过class、id、name定位元素
from selenium import webdriver  
browser = webdriver.Chrome()
browser.get("https://www.baidu.com/")
# 通过class定位搜索框
a  = browser.find_element_by_class_name("s_ipt")
# 通过id定位搜索框
b  = browser.find_element_by_id("kw")
# 通过name定位搜索框
c  = browser.find_element_by_name("wd")
browser.close()

#HTML是通过 tag 来定位元素的功能的,比如 table是表格,a是超链接 等等,
但是一个网页中会有许多 tag,所以一般来说不会通过 tag 来定位元素

#通过 link text、partial link text定位元素
from selenium import webdriver
browser = webdriver.Chrome()
browser.get("https://www.baidu.com/")
link = browser.find_element_by_link_text("新闻").click()#通过脚本定位到 新闻 这个超链接,并点击
link = browser.find_element_by_partial_link_text("闻").click()#如果链接的字符串太长的话,
全部输入影响代码美观也容易出错,这时就可以采用 partial link text,模糊匹配、截取字符串的一部分定位到元素就可以了

#通过 Xpath 定位元素
find_element_by_xpath()
#XPath定位元素的方法有很多中,这里介绍一种最简单粗暴的:
那就是利用浏览器调试功能,定位到元素所在的那一行右键-->Copy-->Copy XPath

#通过 CSS selector 定位元素
find_element_by_css_selector()
#三言两语不能解释清楚,详情请参考:
https://www.w3school.com.cn/cssref/css_selectors.asp

6、查找多个元素
多个元素和单个元素的区别:使用上没什么区别,只不过单个元素是find_element_by,多个元素是find_elements_by

7、获取文本值

from selenium import webdriver

browser = webdriver.Chrome()
url = 'https://www.zhihu.com/explore'
browser.get(url)
input = browser.find_element_by_class_name('zu-top-add-question')
print(input.text)

8、浏览器的前进和后退
back()
forward()

import time
from selenium import webdriver

browser = webdriver.Chrome()
browser.get('https://www.baidu.com/')
browser.get('https://www.taobao.com/')
browser.get('https://www.python.org/')
browser.back()
time.sleep(1)
browser.forward()
browser.close()

9、异常处理

from selenium import webdriver
from selenium.common.exceptions import TimeoutException, NoSuchElementException

browser = webdriver.Chrome()
try:
    browser.get('https://www.baidu.com')
except TimeoutException:
    print('Time Out')
try:
    browser.find_element_by_id('hello')
except NoSuchElementException:
    print('No Element')
finally:
    browser.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值