BeautifulSoup以标记之间的字符串为目标

时间:2013-07-12 04:52:11

标签: python web-scraping beautifulsoup

<li class="li_dataline2">


<b> Expiry date: </b>14/09/2013


</li>

好的,这是一个简单的(我想!?)有人能告诉我如何提取日期吗?所以使用BeautifulSoup </b> </li>之间的所有内容?

感谢。

2 个答案:

答案 0 :(得分:0)

您可以使用.contents

>>> from bs4 import BeautifulSoup as BS
>>> html = """<li class="li_dataline2">
... 
... 
... <b> Expiry date: </b>14/09/2013
... 
... 
... </li>"""
>>> soup = BS(html)
>>> print soup.find('li', {'class':'li_dataline2'}).contents[-1].strip()
14/09/2013

答案 1 :(得分:0)

>>> from bs4 import BeautifulSoup
>>> s
'<li class="li_dataline2">\n\n\n<b> Expiry date: </b>14/09/2013\n\n\n</li>'
>>> soup = BeautifulSoup(s)
>>> soup.find('li', attrs={'class': 'li_dataline2'}).b.nextSibling.strip()
u'14/09/2013'

您也可以使用re

>>> p = re.compile('<b> Expiry date: </b>([\d/]+)\s*</li>')
>>> p.search(s).group(1)
'14/09/2013'
>>>