Python 问题:使用Beautiful Soup删除所有行数据

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&

这里的BS4相对较新

我有以下HTML(为了简洁而截断,URL为Psuedo):

表2的数据如下所示:

    [[],
 [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]