gpt4 book ai didi

python - BeautifulSoup 找不到 parent

转载 作者:行者123 更新时间:2023-11-28 18:49:30 29 4
gpt4 key购买 nike

我实在想不通。我解析了以下 link使用 BeautifulSoup,我这样做了:

soup.find(text='Title').find_parent('h3')

它没有找到任何东西。如果查看链接页面的代码,您会看到一个 h3 标记,其中包含单词 Titles。确切的要点是:

<h3 class="findSectionHeader"><a name="tt"></a>Titles</h3>

如果我让 BS 只解析上面的行,它就可以完美地工作。我也尝试过:

soup.find(text='Title').find_parents('h3')
soup.find(text='Title').find_parent(class_='findSectionHeader')

这两者都只在线上工作,但不能在整个 html 上工作。

如果我执行 soup.find(text='Titles').find_parents('div') 它适用于整个 html。

最佳答案

findSectionHeader H3标签之前,还有一个标签,文本中有Title:

>>> soup.find(text='Title').parent
<a href="/find?q=batman&amp;s=tt&amp;ref_=fn_tt">Title</a>

您需要更具体地搜索,​​改为搜索 Titles,然后循环查找正确的:

>>> soup.find(text='Titles').parent
<option value="tt">Titles</option>
>>> for elem in soup.find_all(text='Titles'):
... parent_h3 = elem.find_parent('h3')
... if parent_h3 is None:
... continue
... print parent_h3
...
<h3 class="findSectionHeader"><a name="tt"></a>Titles</h3>

find(text='...') 仅匹配完整 文本,而不是部分匹配。如果您需要部分匹配,请使用正则表达式:

>>> import re
>>> soup.find_all(text='Title')
[u'Title']
>>> soup.find_all(text=re.compile('Title'))
[u'Titles', u'Titles', u'Titles', u'Title', u'Advanced Title Search']

关于python - BeautifulSoup 找不到 parent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15164824/

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