Python - 美丽的汤 - table
Python - Beautiful soup - table
我有下面的table。我想抓取这个 table 以在输出格式中有一个字典:
<h3>TITRE PRINCIPAL</h3>
<table>
<tr>
<th>Titre 1</th>
<th>Titre 2</th>
<th>Titre 3</th>
<th>Titre 4</th>
<th>Titre 5</th>
</tr>
<tr>
<td>Valeur A</td>
<td>Valeur B</td>
<td>Valeur C</td>
<td>Valeur D</td>
<td>Valeur E</td>
</tr>
<tr>
<td>Valeur F</td>
<td>Valeur G</td>
<td>Valeur H</td>
<td>Valeur I</td>
<td>Valeur J</td>
</tr>
<tr>
<td>Valeur K</td>
<td>Valeur L</td>
<td>Valeur M</td>
<td>Valeur N</td>
<td>Valeur O</td>
</tr>
</table>
输出:
{
'Valeur A': ['Valeur B', 'Valeur C', 'Valeur D', 'Valeur E'],
'Valeur F': ['Valeur G', 'Valeur H', 'Valeur I', 'Valeur J'],
'Valeur K': ['Valeur L', 'Valeur M', 'Valeur N', 'Valeur O']
}
我正在这样做:
soup = BeautifulSoup(fichier_html, "html.parser")
for td in tr.findChildren():
我知道 td.text
会给我 td 中包含的字符串,但我无法组织我的代码来获得我想要的内容
有人可以帮我吗?
如果 html_doc
是您从问题中得到的 HTML 代码,那么:
soup = BeautifulSoup(html_doc, "html.parser")
trs = soup.select("tr:has(td)")
out = {tr.td.text: [td.text for td in tr.select("td")[1:]] for tr in trs}
print(out)
打印:
{
"Valeur A": ["Valeur B", "Valeur C", "Valeur D", "Valeur E"],
"Valeur F": ["Valeur G", "Valeur H", "Valeur I", "Valeur J"],
"Valeur K": ["Valeur L", "Valeur M", "Valeur N", "Valeur O"],
}
我有下面的table。我想抓取这个 table 以在输出格式中有一个字典:
<h3>TITRE PRINCIPAL</h3>
<table>
<tr>
<th>Titre 1</th>
<th>Titre 2</th>
<th>Titre 3</th>
<th>Titre 4</th>
<th>Titre 5</th>
</tr>
<tr>
<td>Valeur A</td>
<td>Valeur B</td>
<td>Valeur C</td>
<td>Valeur D</td>
<td>Valeur E</td>
</tr>
<tr>
<td>Valeur F</td>
<td>Valeur G</td>
<td>Valeur H</td>
<td>Valeur I</td>
<td>Valeur J</td>
</tr>
<tr>
<td>Valeur K</td>
<td>Valeur L</td>
<td>Valeur M</td>
<td>Valeur N</td>
<td>Valeur O</td>
</tr>
</table>
输出:
{
'Valeur A': ['Valeur B', 'Valeur C', 'Valeur D', 'Valeur E'],
'Valeur F': ['Valeur G', 'Valeur H', 'Valeur I', 'Valeur J'],
'Valeur K': ['Valeur L', 'Valeur M', 'Valeur N', 'Valeur O']
}
我正在这样做:
soup = BeautifulSoup(fichier_html, "html.parser")
for td in tr.findChildren():
我知道 td.text
会给我 td 中包含的字符串,但我无法组织我的代码来获得我想要的内容
有人可以帮我吗?
如果 html_doc
是您从问题中得到的 HTML 代码,那么:
soup = BeautifulSoup(html_doc, "html.parser")
trs = soup.select("tr:has(td)")
out = {tr.td.text: [td.text for td in tr.select("td")[1:]] for tr in trs}
print(out)
打印:
{
"Valeur A": ["Valeur B", "Valeur C", "Valeur D", "Valeur E"],
"Valeur F": ["Valeur G", "Valeur H", "Valeur I", "Valeur J"],
"Valeur K": ["Valeur L", "Valeur M", "Valeur N", "Valeur O"],
}