@tigervvin

Как ответ двух циклов вывести в красивые списки?

Всем привет!!! Есть данные которые парсю с помощью BeautifulSoup и LXML
<tbody>
<tr>
    <td>Содержимое 1</td>
    <td>Содержимое 2</td>
</tr>
<tr>
    <td>Содержимое 3</td>
    <td>Содержимое 4</td>
</tr>
</tbody>

Код на Python следующий:
def analys():
    soup = BeautifulSoup(html, "lxml")
    all_tr = soup.find_all("tr")
    for td in all_tr:
        td = td.find_all("td")
        for el in td:
            el = el.text
            yield el
print(list(analys))

Ответ:
('Содержимое 1', 'Содержимое 2', 'Содержимое 3', 'Содержимое 4')
Хочу получить такой ответ:
[('Содержимое 1', 'Содержимое 2')('Содержимое 3', 'Содержимое 4)']
Ну или что то подобное, чтобы все сплошным текстом не выводило
  • Вопрос задан
  • 88 просмотров
Решения вопроса 1
kshnkvn
@kshnkvn
yay ✌️ t.me/kshnkvn
html = '''
<tbody>
<tr>
    <td>Содержимое 1</td>
    <td>Содержимое 2</td>
</tr>
<tr>
    <td>Содержимое 3</td>
    <td>Содержимое 4</td>
</tr>
</tbody>
'''

soup = BeautifulSoup(html, 'lxml')

result = []
tr_elems = soup.find_all('tr')
for tr in tr_elems:
    result.append([td.text for td in tr.find_all('td')])

# [['Содержимое 1', 'Содержимое 2'], ['Содержимое 3', 'Содержимое 4']]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы