我有一个属于变量tbody的字符串,如下所示:
tbody =
'...
</td>
<td class="Details clearfix">
<div>
<b>
9. I want this text and number
</b>
</div>
</td>
<td class="flux">
...'
>print type(tbody)
<type 'str'>
正如您可能已经看到的那样,有空白。 我试图检索'9。我希望这个文本和数字'使用以下代码:
tbody2 = str(tbody.split(','))
tbody2 = str(re.split('\n|\r|\t', tbody2))
m = re.findall(re.compile("\\\\n(.+?)\\\\"), tbody2)
print m
这是我得到的结果:
[...'<td class="Details clearfix">', '<div>', '<b>',
'\\', '9. I want this text and number', '\\', ' </b>', '</div>',
'</td>', '<td class="flux>'...]
我无法获得字符串所以有没有办法检索它可能使用BS或正则表达式?干杯
答案 0 :(得分:4)
from bs4 import BeautifulSoup
tbody = """
<td class="Details clearfix">
<div>
<b>
9. I want this text and number
</b>
</div>
</td>
"""
soup = BeautifulSoup(tbody)
for item in soup.find_all('td',class_="Details clearfix"):
print item.div.b.text.strip()
#output= 9. I want this text and number
我认为没有必要通过搜索美丽的汤来分割你获取预期的输出
答案 1 :(得分:0)
您可以使用DOTALL修饰符
通过Python的模块执行此操作>>> import re
>>> m = re.search(r'<td.*?>.*?<b>\s*([^\n]*).*<\/b>.*?<\/td>', tbody, re.DOTALL)
>>> m.group(1)
'9. I want this text and number'