Парсинг заполненной html таблицы
Как с помощью bs4 спарсить таблицу следующего вида:
Ее код:
<div class="tool-result-body"><div class="tool-result-body"><table class="table table-striped table-bordered table-condensed tool-result-table"><thead><tr>
<th>Pref</th>
<th>Hostname</th>
<th>IP Address</th>
<th>TTL</th>
<th></th>
</tr></thead><tbody><tr><td class="table-column-Pref">10</td>
<td class="table-column-Hostname"><a href="#" onmousedown="javascript:doLookup('a:mx0.charter.net','results');">mx0.charter.net</a></td>
<td class="table-column-IP_Address"><a href="#" onmousedown="javascript:doLookup('ptr:47.43.18.9','results');">47.43.18.9</a><div class="mx-sub-ip-info"><span class="ab-show-asn-static">Charter Communications (AS40294)</span><span class="ab-show-asn-link"><a href="#" onmousedown="javascript:doLookup('asn:Charter Communications','results');">Charter Communications</a> (<a href="#" onmousedown="javascript:doLookup('asn:40294', 'results');">AS40294</a>)<span></span></span></div></td>
<td class="table-column-TTL">60 min</td>
<td><a href="#" onmousedown="javascript:doLookup('blacklist:47.43.18.9','results');">Blacklist Check</a> <a href="#" onmousedown="javascript:doLookup('smtp:47.43.18.9','results');">SMTP Test</a></td>
</tr></tbody></table></div><table class="table table-striped table-bordered table-condensed tool-result-table"><thead><tr>
<th></th>
<th>Test</th>
<th>Result</th>
<th style="min-width:30px;" class=""></th>
Пробовал следующий вариант, но вывод получаю None
from bs4 import BeautifulSoup
soup = BeautifulSoup(page, 'lxml')
print(soup.find('td', сlass="table-column-Hostname"))
Ответы (2 шт):
Автор решения: Clark Devlin
→ Ссылка
Решилось так
from bs4 import BeautifulSoup
soup = BeautifulSoup(page, 'lxml') #page исходный html коl
print(soup.find_all(attrs={"class": "table-column-Hostname"}))
Автор решения: Jack_oS
→ Ссылка
Можно попробовать так:
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, 'html.parser')
print(soup.find('td', сlass_='table-column-Hostname'))
html.parserхоть и медленнее, чемlxml, но иногда правильнее воссоздает DOM;сlass_вместоclass, которое в python является зарезервированным словом
