下面是 Python+selenium 获取一组元素属性值的实例的完整攻略:
1. 使用 selenium 安装和配置
安装 selenium
在终端输入以下命令安装 selenium:
pip install selenium
下载 webdriver
在使用 selenium 前需要下载 webdriver,这是因为 selenium 是通过 webdriver 控制浏览器执行操作的。常用的 webdriver 如下:
- Chrome:https://sites.google.com/a/chromium.org/chromedriver/
- FireFox:https://github.com/mozilla/geckodriver/releases
- Safari:https://webkit.org/blog/6900/webdriver-support-in-safari-10/
选择对应的 webdriver 后解压到一个目录下,或者将其加入环境变量中。
2. 获取一组元素属性值
2.1 打开浏览器
首先,我们需要使用 selenium 打开一个浏览器。这里以 Chrome 浏览器为例:
from selenium import webdriver
# 初始化浏览器
browser = webdriver.Chrome()
# 打开网页
browser.get('https://www.example.com')
2.2 定位元素
接着,我们需要定位到需要获取属性值的元素。定位元素有多种方法,例如:
- 通过元素 id 定位:
browser.find_element_by_id('element_id')
- 通过元素 class 定位:
browser.find_element_by_class_name('element_class')
- 通过元素名称定位:
browser.find_element_by_name('element_name')
- 通过元素链接文字定位:
browser.find_element_by_link_text('element_link_text')
- 通过元素部分链接文字定位:
browser.find_element_by_partial_link_text('element_partial_link_text')
- 通过元素标签名定位:
browser.find_element_by_tag_name('element_tag_name')
- 通过元素 XPath 定位:
browser.find_element_by_xpath('element_xpath')
这里以通过 XPath 定位元素为例:
# 定位元素
element = browser.find_element_by_xpath('//*[@id="element_id"]')
2.3 获取元素属性值
定位到元素后,我们就可以获取元素的属性值了。获取元素属性值有多种方法,例如:
- 获取元素 id 属性值:
element.get_attribute('id')
- 获取元素 class 属性值:
element.get_attribute('class')
- 获取元素 name 属性值:
element.get_attribute('name')
- 获取元素链接文字属性值:
element.get_attribute('href')
- 获取元素文本值:
element.text
这里以获取元素文本值为例:
# 获取元素文本值
value = element.text
3. 示例说明
3.1 示例一
假设我们需要获取百度首页的导航栏中的链接文字,那么可以按照以下方式实现:
from selenium import webdriver
# 初始化浏览器
browser = webdriver.Chrome()
# 打开网页
browser.get('https://www.baidu.com')
# 定位导航栏元素
element = browser.find_element_by_css_selector('#u1 > a')
# 获取所有导航链接的文本值
links = [link.text for link in element.find_elements_by_xpath('*')]
# 打印结果
for link in links:
print(link)
3.2 示例二
假设我们需要获取豆瓣图书排行榜中的书名和作者信息,那么可以按照以下方式实现:
from selenium import webdriver
# 初始化浏览器
browser = webdriver.Chrome()
# 打开网页
browser.get('https://book.douban.com/top250')
# 定位图书排行榜元素
element = browser.find_element_by_css_selector('#content > div > div.article > ol')
# 获取所有书名和作者信息
books = [(book.find_element_by_xpath('./div[@class="indent"]/table/tbody/tr/td[2]/div[@class="pl2"]/a').text,
book.find_element_by_xpath('./div[@class="indent"]/table/tbody/tr/td[2]/div[@class="pl"]').text) for book in element.find_elements_by_xpath('./li')]
# 打印结果
for book in books:
print(book[0], book[1])
以上就是 Python+selenium 获取一组元素属性值的实例的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python+selenium 获取一组元素属性值的实例 - Python技术站