BeautifulSoup - 如何提取标签之间字符串的子字符串?

BeautifulSoup - How do I extract a substring of a string between tags?

我想在 HTML 中搜索 "Website:",然后 return“http://www.aa.com

<br>Website:  <a href="http://www.aa.com">http://www.aa.com</a><br>

我不确定在这里做什么,因为两个字符串之间有一个子句。

将您的内容视为一棵树而不是一个字符串。
Beautifulsoup 允许您访问解析树,发出 findall('a'),然后也使用 parent() and contents(), You can navigate to siblings 导航解析树。

您可以搜索正文; NavigableString 对象中的结果,它保留有关它在树中所在位置的信息,这意味着您可以向它请求该元素的下一个兄弟:

>>> from bs4 import BeautifulSoup
>>> import re
>>> sample = '''\
... <br>Website:  <a href="http://www.aa.com">http://www.aa.com</a><br>
... '''
>>> soup = BeautifulSoup(sample)
>>> soup.find(text=re.compile('Website:'))
u'Website:  '
>>> soup.find(text=re.compile('Website:')).next_sibling
<a href="http://www.aa.com">http://www.aa.com</a>

一旦 <a> 元素获得 href 属性或包含的文本是微不足道的:

>>> soup.find(text=re.compile('Website:')).next_sibling['href']
'http://www.aa.com'
>>> soup.find(text=re.compile('Website:')).next_sibling.string
u'http://www.aa.com'