首页 > 解决方案 > 如何使用漂亮的汤访问 HTML 文件中的下一个元素

问题描述

<ns1:AffectedAreas>
      <ns1:Area>
        <ns1:AreaId>10YDK-1--------W</ns1:AreaId>
        <ns1:AreaName>DK1</ns1:AreaName>
      </ns1:Area>
</ns1:AffectedAreas>

我一直在尽最大努力通过使用然后访问ns1:AreaId它,但我得到的只是一个空字符串(10YDK-1--------W)ns1:AffectedAreasB = soup.find('ns1:area')B.next_element

在此处输入图像描述

标签: pythonpython-3.xbeautifulsoup

解决方案


如果您在 HTML/XML 文档中定义了名称空间,则可以使用xml解析器和 CSS 选择器。

例如:

txt = '''<root xmlns:ns1="some namespace">
    <ns1:AffectedAreas>
      <ns1:Area>
        <ns1:AreaId>10YDK-1--------W</ns1:AreaId>
        <ns1:AreaName>DK1</ns1:AreaName>
      </ns1:Area>
</ns1:AffectedAreas>
</root>'''

soup = BeautifulSoup(txt, 'xml')

area_id = soup.select_one('ns1|AffectedAreas ns1|AreaId').text
print(area_id)

印刷:

10YDK-1--------W

推荐阅读