Как получить родительские элементы с BeautifulSoup4? - PullRequest
0 голосов
/ 31 мая 2018

Я получаю суп, используя это:

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

И затем объект супа содержит несколько похожих объектов 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 в моем случае?

1 Ответ

0 голосов
/ 31 мая 2018

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

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])
...