Я хочу разобрать документ HTML, в котором также есть табличные данные, используя красивый суп. Я делаю некоторые НЛП над ним.
Ячейки таблицы могут иметь только цифры или могут быть жирным шрифтом. Поэтому перед выполнением soup.get_text () я должен sh изменить содержимое табличных данных в соответствии со следующим условием.
Условие: если в ячейке более двух слов (мы можем рассмотреть число быть одним словом), тогда только оставьте его, иначе измените содержимое ячейки на пустую строку.
<code to change table data based on condition>
soup = BeautifulSoup(html)
text = soup.get_text()
Вот кое-что, что я попробовал.
tables = soup.find_all('table')
for table in tables:
table_body = table.find('tbody')
rows = table_body.find_all('tr')
for row in rows:
cols = row.find_all('td')
for ele in cols:
if len(ele.text.split(' ')<3):
ele.text = ''
Однако мы не могу установить ele.text, поэтому он выдает ошибку.
Вот простая HTML Структура с таблицей
<!DOCTYPE html>
<html>
<head>
<title>HTML Tables</title>
</head>
<body>
<table border = "1">
<tr>
<td><p><span>Row 1, Column 1, This should be kept because it has more than two tokens</span></p></td>
<td><p><span>not kept</span></p></td>
</tr>
<tr>
<td><p><span>Row 2, Column 1, should be kept</span></p></td>
<td><p><span>Row 2, Column 2, should be kept</span></p></td>
</tr>
</table>
</body>
</html>