Я пытаюсь извлечь часть HTML, расположенную выше и ниже тега <table>
, например, из приведенного ниже примера HTML:
sample_html = """
<html>
<title><b>Main Title</b></Title>
<b>more</b>
<b>stuff</b>
<b>in here!</b>
<table class="softwares" border="1" cellpadding="0" width="99%">
<thead style="background-color: #ededed">
<tr>
<td colspan="5"><b>Windows</b></td>
</tr>
</thead>
<tbody>
<tr>
<td><b>Type</b></td>
<td><b>Issue</b></td>
<td><b>Restart</b></td>
<td><b>Severity</b></td>
<td><b>Impact</b></td>
</tr>
<tr>
<td>some item</td>
<td><a href="some website">some website</a><br></td>
<td>Yes<br></td>
<td>Critical<br></td>
<td>stuff<br></td>
</tr>
<tr>
<td>some item</td>
<td><a href="some website">some website</a><br></td>
<td>Yes<br></td>
<td>Important<br></td>
<td>stuff<br></td>
</tr>
</tbody>
</table>
<b>AGAIN</b>
<b>more</b>
<b>stuff</b>
<b>down here!</b>
</html>
"""
Я хотел бы получить что-то вроде.
top_html = """
<html>
<title><b>Main Title</b></Title>
<b>more</b>
<b>stuff</b>
<b>in here!</b>
</html>
"""
bottom_html = """
<html>
<b>AGAIN</b>
<b>more</b>
<b>stuff</b>
<b>down here!</b>
</html>
"""
Или уже в текстовом формате, например:
top_html = 'Main Title more stuff down here!'
bottom_html = 'AGAIN more stuff down here!'
Так что я смог извлечь часть <table>
из всего HTML и выполнить свою обработку (яразделите строки <tr>
и столбцы <td>
, чтобы я мог извлечь нужные значения) со следующим кодом:
soup = BeautifulSoup(input_html, "html.parser")
table = soup.find('table')