Python 问题:使用Beautiful Soup删除所有行数据
这里的BS4相对较新 我有以下HTML(为了简洁而截断,URL为Psuedo): 表2的数据如下所示:Python 问题:使用Beautiful Soup删除所有行数据,python,beautifulsoup,Python,Beautifulsoup,这里的BS4相对较新 我有以下HTML(为了简洁而截断,URL为Psuedo): 表2的数据如下所示: [[], [u'87', u'7'], [u'68'], content = """<table> <thead> <tr> <th>Month</th> <th>Savings</th> </tr> </thead> <tfoot&
[[],
[u'87', u'7'],
[u'68'],
content = """<table>
<thead>
<tr>
<th>Month</th>
<th>Savings</th>
</tr>
</thead>
<tfoot>
<tr>
<td>Sum</td>
<td>$180</td>
</tr>
</tfoot>
<tbody>
<tr>
<td>January</td>
<td>$100</td>
</tr>
<tr>
<td>February</td>
<td>$80</td>
</tr>
</tbody>
</table>"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(content, "html.parser")
table = soup.find("table")
print([header.text for header in soup.find("table").find("thead").find_all("th")])
for row in soup.find("table").find("tbody").find_all("tr"):
print([data.text for data in row.find_all("td")])
print([footer.text for footer in soup.find("table").find("tfoot").find_all("td")])
如何使“Part1”和“Part2”显示在同一列表中
很抱歉给您添麻烦;-)
预期产出:
[[],
[u'Part1',u'87', u'7'],
[u'Part2', u'68'],
您的桌子结构不正确。按照以下格式正确构造表格: 想象一下,如果您的表是这样构造的:
[[],
[u'87', u'7'],
[u'68'],
content = """<table>
<thead>
<tr>
<th>Month</th>
<th>Savings</th>
</tr>
</thead>
<tfoot>
<tr>
<td>Sum</td>
<td>$180</td>
</tr>
</tfoot>
<tbody>
<tr>
<td>January</td>
<td>$100</td>
</tr>
<tr>
<td>February</td>
<td>$80</td>
</tr>
</tbody>
</table>"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(content, "html.parser")
table = soup.find("table")
print([header.text for header in soup.find("table").find("thead").find_all("th")])
for row in soup.find("table").find("tbody").find_all("tr"):
print([data.text for data in row.find_all("td")])
print([footer.text for footer in soup.find("table").find("tfoot").find_all("td")])
如果您的“表数据”如下所示:“部分”是您所需的值,并且您只想“展平”列表,请尝试:
2d_list = [[], [u'87', u'7'], [u'68']]
1d_list = [x for y in 2d_list for x in y]
结果:
[u'87,u'7',u'68']
请使用您问题上的链接添加预期输出使用此:行([“td”,“th”])
谢谢,但是我正在寻找以下输出(如果我第一次添加,很抱歉会有所帮助)@MattA请共享完整的表结构。或者至少几个表行<代码>我一直在寻找答案:['Part1',u'87',u'7',u'68'],['part2',u'68']……嗨,我无法控制表格的结构
2d_list = [[], [u'87', u'7'], [u'68']]
1d_list = [x for y in 2d_list for x in y]