python -
使用 Python 和 Beautiful Soup 从 HTML 表中删除 ` ` 和 ` `
问题描述
我想使用 Python 和 bs4 从抓取的 HTML 表中删除<br>
和删除。
HTML表格:
<tr>
<td style="width: 15; BORDER-BOTTOM: 1px solid">col1</td>
<td colspan="2" style="width: 120; BORDER-BOTTOM: 1px solid"> col2</td>
<td style="width: 50; BORDER-BOTTOM: 1px solid">col3</td>
<td style="width: 50; BORDER-BOTTOM: 1px solid">col5</td>
<td style="width: 50; BORDER-BOTTOM: 1px solid">col6</td>
<td style="width: 90; BORDER-BOTTOM: 1px solid" align="center">col7</td>
<td style="width: 90; BORDER-BOTTOM: 1px solid" align="center">col8</td>
<td style="width: 10; BORDER-BOTTOM: 1px solid">col9</td>
<td style="width: 10; BORDER-BOTTOM: 1px solid">col
<br> 1
<br>0</td>
<td style="width: 10; BORDER-BOTTOM: 1px solid">col11</td>
<td style="width: 10; BORDER-BOTTOM: 1px solid" >col12</td>
<td style="width: 10; BORDER-BOTTOM: 1px solid">col13</td>
<td style="width: 10; BORDER-BOTTOM: 1px solid">col14</td>
<td style="width:10;BORDER-BOTTOM: 1px solid;" >col15</td>
</tr>
<tr bordercolor="#000000" class="rows1">
<td align="left"> 1</td>
<td colspan="2" style="BORDER-LEFT: 1px solid" align="left"> 123456789</td>
<td style="BORDER-LEFT: 1px solid" align="left"> John </td>
<td style="BORDER-LEFT: 1px solid" align="left"> Doe </td>
<td style="BORDER-LEFT: 1px solid" align="left"> </td>
<td style="BORDER-LEFT: 1px solid" align="right"> 3.000</td>
<td style="BORDER-LEFT: 1px solid" align="right"> 0,00</td>
<td style="BORDER-LEFT: 1px solid" align="right"> 30</td>
<td style="BORDER-LEFT: 1px solid" align="right"> 0</td>
<td style="BORDER-LEFT: 1px solid" align="right"> </td>
<td style="BORDER-LEFT: 1px solid" align="right"> </td>
<td style="BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid" align="right"> </td>
<td style="BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid" align="right"> </td>
<td style="BORDER-LEFT: 1px solid;BORDER-RIGHT: 1px solid;" align="right"> 5000</td>
</tr>
<tr bordercolor="#000000" class="rows0">
<td align="left"> 2</td>
<td colspan="2" style="BORDER-LEFT: 1px solid" align="left"> 123456789</td>
<td style="BORDER-LEFT: 1px solid" align="left"> Jane </td>
<td style="BORDER-LEFT: 1px solid" align="left"> Doe </td>
<td style="BORDER-LEFT: 1px solid" align="left"> </td>
<td style="BORDER-LEFT: 1px solid" align="right"> 3.000</td>
<td style="BORDER-LEFT: 1px solid" align="right"> 0,00</td>
<td style="BORDER-LEFT: 1px solid" align="right"> 30</td>
<td style="BORDER-LEFT: 1px solid" align="right"> 0</td>
<td style="BORDER-LEFT: 1px solid" align="right"> 3</td>
<td style="BORDER-LEFT: 1px solid" align="right"> </td>
<td style="BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid" align="right"> </td>
<td style="BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid" align="right"> </td>
<td style="BORDER-LEFT: 1px solid;BORDER-RIGHT: 1px solid;" align="right"> 5000</td>
</tr>
蟒蛇代码:
import requests
import bs4
url = "http://www.example.com/test.html"
r = requests.get(url)
html = r.text
soup = bs4.BeautifulSoup(html, 'html.parser')
tables = soup.findAll('table')[1]
for tr in tables.findAll('tr')[0:3]:
cols = tr.findAll('td')
for tds in cols:
print ('{:5}'.format(str(tds.text)), end="")
print()
解决方案
您可以使用该replace
功能。
TEXT = '<br>test test'
TEXT = TEXT.replace('<br>', '').replace(' ', '')
推荐阅读
- javascript - 我在路由器中将状态作为道具传递并尝试使用它,但它返回 typeerror: is not a function(react.js)
- alfresco - Alfresco 无法在共享中上传文件
- azure - Windows Azure 应用服务发布过程的安全性
- cypress - 单击复制按钮时无法达到预期结果
- windows - 无需密码即可访问照片 Windows 10
- node.js - 唯一的部分索引不适用于电子邮件上的猫鼬
- datatables - 数据表源填充
- javascript - TypeError:无法读取反应中未定义的属性'0'
- javascript - 如何检查 div .has() 2 是否在 div 中处于同一级别的元素
- javascript - 在“Connect(Items)”的上下文中找不到“store”。要么将根组件包装在
在 react.js 中?