Как получить родительские предметы с BeautifulSoup4?

Я получаю суп из этого:

soup = BeautifulSoup(html, 'lxml').find("tbody").find_all("tr")

И затем объект soup содержит несколько похожих объектов tr>, как это:

<tr>
<td class = "table">115</td>
<td>204</td>
<td><div><span class = "flag-icon"></span>  United States <span> NY </span></div></td>
<td>brown</td>
<td>up</td>
<td class = "table">groove</td>
</tr>

Итак, моя цель - получить вырезанные текстовые данные только из 1,2,4 и собрать их в небольшой список. Как это:

[115, 204, 'brown']

И после того, как я получил все маленькие списки от всех, я должен добавить их все в большой список. Как это:

[[115, 204, 'brown'], [32, 12, 'red'] ... [42, 87, 'yellow']]

Честно говоря, я использовал два цикла for и нарезал необходимые небольшие элементы списка, чтобы добавить большой список. Но я полагаю, что есть гораздо лучший и более простой способ сделать это.

Может быть, у вас есть идеи, как использовать мощные возможности BeautifulSoup в моем случае?

Не могли бы вы уточнить, что вы подразумеваете под маленьким списком и большим списком? Можете ли вы вставить остальную часть кода для логики?

nandal 31.05.2018 14:08

@nandal Спасибо, я только что обновил свой пост примерами.

Quanti Monati 31.05.2018 14:09
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
35
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте следующее: -

rows = BeautifulSoup(html, 'lxml').find("tbody").find_all("tr")
bigList = []
for row in rows:
    tds = row.find_all("td")
    bigList.append([tds[0].text, tds[1].text, tds[3].text])

Большое спасибо, Нандал. Ваше решение лучше моего. Только 1 цикл вместо 2, без дополнительных переменных и нет необходимости удалять элементы в небольших списках.

Quanti Monati 31.05.2018 14:21

Другие вопросы по теме