我有以下网址,想提取价格。为此,我将页面加载到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的查找表达式?有没有办法搜索“总计”然后得到它旁边的文字?
答案 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
使用正则表达式等