python - 如何使用python和html标签值下的html标签中的美丽汤来解析html文件?
问题描述
我的 html 文件<span class="fna">
多次包含相同的 tag()。如果我想区分这个标签,那么我需要查看前一个标签。标记()下的标记(<span id="field-value-reporter">
)。在美丽的汤中,我只能应用于标签条件,例如,soup.find_all("span", {"id": "fna"})。此函数提取标签(<span class="fna">
)的所有数据,但我只需要包含在标签(<span id="field-value-reporter"
)下的数据
示例 html 标签:
<div class="value">
<span id="field-value-reporter">
<div class="vcard vcard_287422" >
<a class="email " href="/user_profile?user_id=287422" >
<span class="fna">Chris Pearce (:cpearce)
</span>
</a>
</div>
</span>
</div>
<div class="value">
<span id="field-value-triage_owner">
<div class="vcard vcard_27780" >
<a class="email " href="/user_profile?user_id=27780">
<span class="fna">Justin Dolske [:Dolske]
</span>
</a>
</div>
</span>
</div>
解决方案
使用soup.select
:
soup.select('#field-value-reporter a > span') # select for all tags that are children of a tag whose id is field-value-reporter
>>> [<span class="fna">Chris Pearce (:cpearce)</span>]
soup.select
使用 css 选择器,在我看来,它比BeautifulSoup
. 请注意,所有结果都作为列表返回,并包含匹配的所有内容。
推荐阅读
- mysql - 查询sql的优化
- python - 无法让 Pyserial 类与 uart 一起使用
- css - 如果在 angular2-multiselect 中禁用下拉菜单,请删除“下拉菜单”图标
- python - multiprocessing.Queue 中的大对象死锁
- python - 有没有合并 3 行的 pandas 函数?
- sql - 在 created_at 上带有 Group by 子句的记录是 9,但它给出的总数是 12,在 laravel eloquent 中没有 group by
- reactjs - TextInput 右侧的 React-Native 图标
- javascript - 多种模式与一种可覆盖模式
- java - JAVA:您的 SQL 语法错误;检查与您的 MySQL 服务器版本相对应的手册
- java - 局域网共享数据库的 Java Swing 程序