页面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