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>