Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I remove a column from a table in beautifulsoup (Python)

I have an html table, and I would like to remove a column. What is the easiest way to do this with BeautifulSoup or any other python library?

like image 491
jedberg Avatar asked Nov 05 '22 15:11

jedberg


1 Answers

lxml.html is nicer for manipulating HTML, IMO. Here's some code that will remove the second column of an HTML table.

from lxml import html

text = """
<table>
<tr><th>head 1</th><th>head 2</th><th>head 3</th></tr>
<tr><td>item 1</td><td>item 2</td><td>item 3</td></tr>
</table>
"""

table = html.fragment_fromstring(text)

# remove middle column
for row in table.iterchildren():
    row.remove(row.getchildren()[1])

print html.tostring(table, pretty_print=True)

Result:

<table>
<tr>
<th>head 1</th>
<th>head 3</th>
</tr>
<tr>
<td>item 1</td>
<td>item 3</td>
</tr>
</table>
like image 199
Ryan Ginstrom Avatar answered Nov 12 '22 12:11

Ryan Ginstrom