BeautifulSoup: как придать значение пустым узлам - PullRequest
1 голос
/ 09 апреля 2020

Мне было интересно, можно ли присвоить значение пустому узлу.

Оригинал: <td></td> Хотите изменить на: <td>anything</td>

1 Ответ

1 голос
/ 09 апреля 2020

Если вы обнаружите, что узел использует

node = soup.find("td")

, вы можете предоставить контент этому элементу, назначив node.string:

node.string = "anything"

Полный пример:

from bs4 import BeautifulSoup                                                   

soup = BeautifulSoup('<td></td>')                                                
node = soup.find("td")                                                          
node.string = "anything"                                                        
print(soup)

Вывод:

<html><body><td>anything</td></body></html>

Если у вас много таких узлов и вы хотите назначить только пустые, вы можете сделать что-то вроде:

for node in soup.find_all("td"):
    if not node.string:
        node.string = "anything"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...