gpt4 book ai didi

python - BeautifulSoup 按字符串查找标签,不带子文本

转载 作者:行者123 更新时间:2023-12-01 02:25:33 25 4
gpt4 key购买 nike

我正在使用 Python3 和 BeautifulSoup 4.4.0 从网站提取数据。我对 div 标签中的表格感兴趣,但要知道表格内有哪些数据,我必须获取 h4 标签的文本,然后获取同级表格。问题在于,其中一个 h4 标签具有跨度,并且当内部存在另一个标签时,BeautifulSoup 会为字符串值返回 None 。

def get_table_items(self, soup, header_title):
header = soup.find('h4', string=re.compile(r'\b{}\b'.format(header_title), re.I))
header_table = header.find_next_sibling('table')
items = header_table.find_all('td')
return items

上面的代码适用于除 <h4>Unique Title 2<span>(<a href="...">Something</a>)</span></h4> 之外的所有 h4

....
<div id="some_id">
<h4>Unique Title 1</h4>
<table>
...
</table>
<h4>Unique Title 2<span>(<a href="...">Something</a>)</span></h4>
<table>
...
</table>
<h4>Unique Title 3</h4>
<table>
...
</table>
</div>

最佳答案

您可能需要手动进行搜索,而不是依赖正则表达式:

from bs4 import BeautifulSoup

soup = BeautifulSoup(html, "html.parser")
header_title = "Unique Title 2"

for h4 in soup.find_all('h4'):
if header_title in h4.text:
...

关于python - BeautifulSoup 按字符串查找标签,不带子文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47445786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com