首页 > 解决方案 > 通过pyquery获取具有特定属性的元素

问题描述

我在 HTML 页面中有这样的内容:

<ul>
    <li>
        <span data-name-en="data1">Value1</span>
        <span data-view-en="test1"><span class="fa fa-gear"></span></span>
    </li>
    <li>
        <span data-name-en="data2">Value2</span>
        <span data-view-en="test2"><span class="fa fa-gear"></span></span>
    </li>
    <li>
        <span data-name-en="data3">Value3</span>
        <span data-view-en="test3"><span class="fa fa-gear"></span></span>
    </li>
    <li>
        <span data-name-en="data4">Value4</span>
        <span data-view-en="test4"><span class="fa fa-gear"></span></span>
    </li>
</ul>

如何获取所有具有data-name-en属性的元素?

标签: pythonpyquery

解决方案


我找到了正确答案:

s = '''
<ul>
    <li>
        <span data-name-en="data1">Value1</span>
        <span data-view-en="test1"><span class="fa fa-gear"></span></span>
    </li>
    <li>
        <span data-name-en="data2">Value2</span>
        <span data-view-en="test2"><span class="fa fa-gear"></span></span>
    </li>
    <li>
        <span data-name-en="data3">Value3</span>
        <span data-view-en="test3"><span class="fa fa-gear"></span></span>
    </li>
    <li>
        <span data-name-en="data4">Value4</span>
        <span data-view-en="test4"><span class="fa fa-gear"></span></span>
    </li>
</ul>
'''

html = PyQuery(s)
items = html.find('li span[data-name-en]')

为了获取属性值,您需要这样做:

pq(item).attr("data-name-en")

推荐阅读