用selenium和xpath定位元素并获取属性值以及str字符型转json型

页面html如图所示:

要使用xpath定位这个div元素,并且获取其属性data-config的内容值。

复制代码
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options

host='127.0.0.1'
port='10808'
chrome_options = Options()#如果是from selenium.webdriver.edge.options import Options,打开edge;如果是from selenium.webdriver.chrome.options import Options,打开chrome
chrome_options.add_argument("--proxy-server=socks5://" + host + ":" + port)

driver = webdriver.Chrome(options=chrome_options)
url = "https://xxxx.xxx/archives/1234/"
driver.get(url)
div =driver.find_element(By.XPATH,"//div[@class='dplayer dplayer-no-danmaku']")
str_attr=div.get_attribute('data-config')
print(str_attr)

import json
json_attr=json.loads(str_attr)
print(json_attr)
print(json_attr['video']['url'])

结果如图:

蓝色的为str类型,红色的为json类型。

那么先得到的是str类型,如何转换为json类型呢?使用如下代码即可。

import json

json_attr=json.loads(str_attr)

读取json数据用json_attr['video']['url']即可。具体可参阅这篇好文:

如何将 Python 字符串转换为 JSON

相关推荐
2501_938774295 小时前
Copilot 与测试工具协同?Mastering 课程中单元测试生成与结对编程的结合
测试工具·单元测试·copilot
安冬的码畜日常13 小时前
【JUnit实战3_14】第八章:mock 对象模拟技术在细粒度测试中的应用(中):为便于模拟重构原逻辑的两种策略
测试工具·junit·重构·单元测试·多态·junit5·mock 模拟
.hopeful.14 小时前
Selenium常用方法
selenium·测试工具
安冬的码畜日常1 天前
【JUnit实战3_10】第六章:关于测试的质量(上)
测试工具·junit·单元测试·测试覆盖率·1024程序员节·junit5
大汉堡玩测试1 天前
使用kafka造测试数据进行测试
测试工具·kafka
newxtc1 天前
【四川政务服务网-注册安全分析报告】
运维·selenium·安全·政务·安全爆破
胜天半月子2 天前
性能测试 | 性能测试工具JMeter直连数据库和逻辑控制器的使用
数据库·测试工具·jmeter·性能测试
LEEBELOVED2 天前
R语言基于selenium模拟浏览器抓取ASCO数据-连载NO.03
selenium·r语言·1024程序员节
❀͜͡傀儡师2 天前
网络嗅探抓包工具 Wireshark v4.6.0
网络·测试工具·wireshark
安冬的码畜日常2 天前
【JUnit实战3_17】第九章:容器内测试(下)——Arquillian 框架的用法简介
测试工具·junit·单元测试·junit5·arquillian·容器内测试·in-container