如何找到没有链接的h1标签html格式的文本?

时间:2016-02-23 08:04:52

标签: python beautifulsoup

我想在这里找到一个文字" 文字标题"在下面的脚本中:

<h1 class="titleClass" itemprop="name">
    Text title here
    <a class="titleLink" href="somelink-here.html">
        text link here
    </a>
</h1>

我使用python beautifulsoup。

3 个答案:

答案 0 :(得分:1)

您可以获取整个h1标记,然后按如下方式提取所有链接:

from bs4 import BeautifulSoup

html = """<h1 class="titleClass" itemprop="name">
    Text title here
    <a class="titleLink" href="somelink-here.html">
        text link here
    </a>
</h1>"""

soup = BeautifulSoup(html)

p = soup.find('h1', attrs={'class': 'titleClass'})
p.a.extract()
print p.text.strip()

这会显示:

Text title here

答案 1 :(得分:0)

您可以使用正则表达式和BeautiFulSoup的组合:

import re
from bs4 import BeautifulSoup

soup = BeautifulSoup(html, 'lxml')
for link in soup.find_all('a', string=re.compile(r'^text link')):
    print link

这将找到以text link开头的所有链接。

答案 2 :(得分:0)

导航至<h1>并从.stripped_strings生成器获取第一个字符串:

>>> from bs4 import BeautifulSoup
>>> next(BeautifulSoup(html).select_one('h1.titleClass').stripped_strings)
'Text title here'