Python - Как извлечь число из вывода bs4 - PullRequest
0 голосов
/ 14 апреля 2020

Я пытаюсь получить цену с веб-сайта, использующего BeautifulSoup, и до сих пор мне удалось получить:

<h2>£<!-- -->199.99</h2>

Я просто хочу получить £ 199,99. Есть ли способ отфильтровать буквы?

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

Вы будете использовать get_text функцию с полоской = True для очистки при необходимости

from bs4 import BeautifulSoup


html = '<h2>£<!-- -->199.99</h2>'
soup = BeautifulSoup(html,'html5lib')

result = soup.find('h2').get_text(strip=True)

print(result)
#£199.99

0 голосов
/ 14 апреля 2020

Использовать re?

import re

s = "<h2>£<!-- -->199.99</h2>"

rx_price = re.compile(r'([0-9.]+)')

content = re.sub(r'<.+?>', '', s)

print (f"£{rx_price.findall(content)[0]}")

Вывод:

£199.99
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...