Python Beautiful Soup Помогиту удалить ""

Вот сам код:

  with open('index.html') as file:
     src = file.read()   
  soup = BeautifulSoup(src, 'lxml')
  tram_schedule = soup.find('div', class_='column working-days').find_all('tr')
  for tram in tram_schedule:
     print(tram)

Получаю вот это:

<tr></tr>
<tr><td>6</td><td class="default-td color-gray"><spam class="">31</spam></td><td class="default-td color-gray"><spam class="">46</spam></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td>7</td><td class="default-td color-gray"><spam class="">00</spam></td><td class="default-td color-gray"><spam class="">15</spam></td><td class="default-td color-gray"><spam class="">30</spam></td><td class="default-td color-gray"><spam class="">45</spam></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td>8</td><td class="default-td color-gray"><spam class="">00</spam></td><td class="default-td color-gray"><spam class="">15</spam></td><td class="default-td color-gray"><spam class="">30</spam></td><td class="default-td color-gray"><spam class="">43</spam></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>

Помоните удалить эту первую строку <tr></tr>


Ответы (1 шт):

Автор решения: Namerek
from bs4 import BeautifulSoup

html_code = """<tr></tr>
<tr><td>6</td><td class="default-td color-gray"><spam class="">31</spam></td><td class="default-td color-gray"><spam class="">46</spam></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td>7</td><td class="default-td color-gray"><spam class="">00</spam></td><td class="default-td color-gray"><spam class="">15</spam></td><td class="default-td color-gray"><spam class="">30</spam></td><td class="default-td color-gray"><spam class="">45</spam></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td>8</td><td class="default-td color-gray"><spam class="">00</spam></td><td class="default-td color-gray"><spam class="">15</spam></td><td class="default-td color-gray"><spam class="">30</spam></td><td class="default-td color-gray"><spam class="">43</spam></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
"""


soup = BeautifulSoup(html_code, 'html.parser')
# tram_schedule = soup.find('div', class_='column working-days').find_all('tr')
for tram in filter(lambda x: x.find('td'), soup.find_all('tr')):
    print(tram)

UPD

Совсем забыл. Вот так еще можно:

for tram in soup.select('tr:has(td)'):
    print(tram)
# тоесть в Вашем случае
# for tram in soup.find('div', class_='column working-days').select('tr:has(td)'):
#     print(tram)

Результат будет одинаковый


<tr><td>6</td><td class="default-td color-gray"><spam class="">31</spam></td><td class="default-td color-gray"><spam class="">46</spam></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td>7</td><td class="default-td color-gray"><spam class="">00</spam></td><td class="default-td color-gray"><spam class="">15</spam></td><td class="default-td color-gray"><spam class="">30</spam></td><td class="default-td color-gray"><spam class="">45</spam></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td>8</td><td class="default-td color-gray"><spam class="">00</spam></td><td class="default-td color-gray"><spam class="">15</spam></td><td class="default-td color-gray"><spam class="">30</spam></td><td class="default-td color-gray"><spam class="">43</spam></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
→ Ссылка