我想搜索的HTML「網站:」,然後返回「http://www.aa.com」BeautifulSoup - 我如何提取標籤之間的字符串的子字符串?
<br>Website: <a href="http://www.aa.com">http://www.aa.com</a><br>
我不知道這裏做什麼,因爲在兩個字符串之間的條款。
我想搜索的HTML「網站:」,然後返回「http://www.aa.com」BeautifulSoup - 我如何提取標籤之間的字符串的子字符串?
<br>Website: <a href="http://www.aa.com">http://www.aa.com</a><br>
我不知道這裏做什麼,因爲在兩個字符串之間的條款。
您可以搜索文本;結果在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'
將您的內容視爲樹而不是字符串。
Beautifulsoup可讓您訪問解析樹,發出findall('a')
,然後瀏覽分析樹parent()
和contents()
,您也可以導航到siblings。