在Beautifulsoup中搜索文本

时间:2016-01-23 03:39:21

标签: python beautifulsoup

我有以下网址,想提取价格。为此,我将页面加载到beautifulsoup:

soup = bs(content, 'lxml')
for e in soup.find_all(class_="totalPrice"):

现在我得到一个看起来像这样的文本(这是bs4.element.Tag类型的单个元素):

<td class="totalPrice" colspan="3">
<div data-component="track" data-hash="OLNYSRfCbdWGffSRe" data-stage="1" data-track="view"></div>
Total: £145
</td>

如何创建另一个将提取145的查找表达式?有没有办法搜索“总计”然后得到它旁边的文字?

URL with original content that I extract

2 个答案:

答案 0 :(得分:1)

使用正则表达式!

>>> import re
>>> search_text = 'blah Total: result'
>>> result = re.findall(r'Total: (.*)', search_text)
>>> result
['result']

如果你想更通用并捕捉看起来像货币的东西,试试这个:

>>> result = re.findall(r': (£\d*)', search_text)

这将为您提供货币符号£ +以及以下数字。

答案 1 :(得分:1)

您可以从代码

获取文字
text = e.get_text()

你有正常的字符串Total: £145所以你可以拆分它

text.split(' ') # [`Total:',  '£145`]

切片

text[8:]  # 145

使用正则表达式等