html嵌套修改,如何清除html中 反复嵌套的标签

在帮人爬一个奇葩网站的数据中,发现一些网页的表格 无论是用BeautifulSoup 还是 lxml解析都是失败 或者不完整的。

查看页面源码发现,表格最后一列的所有数据 虽然都只有一个 '-',但是内容却是藏在非常大量的无用标签底下。

其他列的数据 只是在table/tbody/tr/td/div/span 下

仅这列的数据 是在table/tbody/tr/td/div/span/+(非常多层的div span)下。

删除了部分多于的内容后,html文件百度网盘链接在此,

问题html文件

总的来说,我的问题就是,如何判别这种无限叠加的无效标签,并替换为能被BS或者lxml读取的格式?

现在正在试验的是 lxml中Cleaner类

page = open(test_path, encoding='utf-8').read()

cleaner = Cleaner(style=True, remove_tags=['div','span', 'font'])

page = cleaner.clean_html(page)

如果读入内容仅一层 tr的话倒是能正确清理了!

但是如果把整个表的html读入,进行清理,不知道因为什么原因。

只能读入到嵌套的地方未知,后续的内容全部被删。

初步怀疑是python的递归限制?

正在试验xpath。

试验失败。

通过xpath读取tabl下的tr标签 查看数量。

发现也仅能读取嵌套位置前的tr标签,后续标签无法查询。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值