如何获取标签中元素的值?

How to get the value of an element within a tag?

<div class="player__AAtt">
    <div>
        <play-js data-account="1234567890" data-id="32667_32797">
        </play-js>
    </div>
</div>

我想获取 data-account 和 data-id 的值,它们是 play-js 标签中的元素。

elemname = driver.find_elements_by_xpath('xpath.../div/play-js')

我试过如下,但我无法获取值。

使用 javascript,我可以使用下面的代码导入它。

var elems = document.querySelectorAll('.player__AAtt play-js');
console.log(elems[0].dataset.account)
console.log(elems[0].dataset.dataid)

如何获取标签内元素的值而不是标签本身的值?

您可以使用.get_attribute()方法:

elemname = driver.find_elements_by_xpath('xpath.../div/play-js')

elemname.get_attribute("data-account")

在python中我们主要使用BeautifulSoup来解析html页面。这里的代码将帮助您获取所提供的 html 文件中所有 play-js 元素的值。

from bs4 import BeautifulSoup

res_page = """
<div class="player__AAtt">
    <div>
        <play-js data-account="1234567890" data-id="32667_32797">
        </play-js>
    </div>
</div>
"""

soup = BeautifulSoup(res_page, 'html.parser')
output_list = soup.find_all('play-js')
data_account_list = [data_account['data-account'] for data_account in output_list]
data_id_list = [data_id['data-id'] for data_id in output_list]

print(data_account_list)
print(data_id_list)

输出为:

['1234567890']
['32667_32797']