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'
我想在 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'