首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用BeautifulSoup查找自定义HTML标记

使用BeautifulSoup查找自定义HTML标记
EN

Stack Overflow用户
提问于 2021-09-14 08:40:19
回答 1查看 98关注 0票数 0

我试图使用BeautifulSoup在HTML页面上找到一个Gliffy图表。HTML页面的源代码大致如下所示:

代码语言:javascript
复制
<p>Lorem ipsum dolor sit amet</p>
<p>Figure: Consectetur adipiscing elit</p>
<p>
   <ac:structured-macro ac:macro-id="a9ab423b-b68c-4836-bffa-cdf1c5b95392" ac:name="gliffy" ac:schema-version="1">
      <ac:parameter ac:name="displayName">Sed do eiusmod</ac:parameter>
      <ac:parameter ac:name="name">Tempor incididunt ut</ac:parameter>
      <ac:parameter ac:name="pagePin">2</ac:parameter>
   </ac:structured-macro>
</p>
<p><br/></p>

我想在页面中定位<ac:structured-macro ac:macro-id="a9ab423b-b68c-4836-bffa-cdf1c5b95392" ac:name="gliffy" ac:schema-version="1">,但不使用像soup.find_all('ac:structured-macro')这样的通用语句,因为在汇流中使用了多种宏,所以我想要准确定位ac:name="gliffy"宏,排除所有其他可能性。

但是,因为这看起来不像一个标准的HTML标记。我不确定BeautifulSoup是正确的选择。我是否应该使用其他库,如lxml。无论如何,请让我知道我应该使用哪个库和什么函数,以及我应该如何调用以准确定位这个HTML页面中的Gliffy图。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-14 08:57:50

对于xml数据,您仍然可以使用BeautifulSoup,但是您需要加载lxml解析器,而不是在标准库中加载。

代码语言:javascript
复制
pip install lxml

这里有一个关于如何查找代码的示例:

代码语言:javascript
复制
from bs4 import BeautifulSoup

html = """<p>Lorem ipsum dolor sit amet</p>
<p>Figure: Consectetur adipiscing elit</p>
<p>
    <ac:structured-macro ac:macro-id="a9ab423b-b68c-4836-bffa-cdf1c5b95392" ac:name="gliffy" ac:schema-version="1">
    <ac:parameter ac:name="displayName">Sed do eiusmod</ac:parameter>
    <ac:parameter ac:name="name">Tempor incididunt ut</ac:parameter>
    <ac:parameter ac:name="pagePin">2</ac:parameter>
    </ac:structured-macro>
</p>
<p><br/></p>"""


soup = BeautifulSoup(html, "lxml")

for tag in soup.find_all(attrs={"ac:name": "gliffy"}):
   print(tag)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69174589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档