Beautifulsoup экстракт внутри тега <br> - PullRequest
1 голос
/ 13 апреля 2020

У меня есть html код, подобный этому

<td><b>Total : 32</b><br/>Mango : 12<br/>Banana : 4<br/>Grape : 16<br/>Watermelon : 0 </td>

Как мне извлечь его в переменную, подобную этой?

Total : 32
Mango : 12
Banana : 4
Grape : 16
Watermelon : 0

Просто получите номер, имя в качестве переменной

Спасибо.

Ответы [ 2 ]

2 голосов
/ 13 апреля 2020

Вы также можете использовать подход FOP (при условии, что вы уже создали суп soup:

map(lambda br: print(br.text), soup.find_all('br'))
2 голосов
/ 13 апреля 2020

Попробуйте:

a = '<td><b>Total : 32</b><br/>Mango : 12<br/>Banana : 4<br/>Grape : 16<br/>Watermelon : 0 </td>'
for i in a.strings:
    print(i)

Помните, a не строка, а <class 'bs4.BeautifulSoup'>. это дает вывод:

Total : 32
Mango : 12
Banana : 4
Grape : 16
Watermelon : 0 

Это может быть сохранено как словарь:

dc = {}
for i in a.strings:
    dc[i.split()[0]] = int(i.split()[-1])

это дает:

{'Total': 32, 'Mango': 12, 'Banana': 4, 'Grape': 16, 'Watermelon': 0}

Теперь, если вы Убедитесь, что вам нужны переменные, такие как Total, значение которой равно 32, попробуйте (не рекомендуемый метод):

for i in a.strings:
    exec(f'{i.split()[0]} = int(i.split()[-1])')

Теперь вызовите их:

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