Как я могу найти целые числа из строки HTML с помощью BeautifulSoup? - PullRequest
0 голосов
/ 26 мая 2020

Строка:

<span class="current">7</span>

Скрипт, который печатает этот вывод:

current = actual_items.find("span", class_="current")
print(current)

Моя попытка:

print(current.find("text", text=current.isdigit()))

Ожидаемый результат:

7

Ответы [ 3 ]

1 голос
/ 26 мая 2020

Попробуйте использовать атрибут text, например:

current.text.strip()

Вызов strip может не потребоваться при работе с хорошо отформатированным HTML, но, по моему опыту, это часто требуется.

1 голос
/ 26 мая 2020

Используйте str.isdigit как параметр text=:

from bs4 import BeautifulSoup

txt = '''<span class="current">THIS IS NOT A NUMBER</span>
<span class="current">7</span>
'''

soup = BeautifulSoup(txt, 'html.parser')

print( soup.find('span', class_="current", text=str.isdigit).text )

Выводит:

7
0 голосов
/ 26 мая 2020

Это вернет текст внутри div:

print(current.text)

Это скажет вам, является ли это di git или нет.

print(current.text.isdigit())
...