for tables in apple_tables:
text = tables.getText()
a = len(re.findall(r"\d", text))
b = len(text)
print(a/b)
print(text)
if a/b >= .1:
apple_soup_16.remove? replace? #I need all text in this instance completely gone
这是我到目前为止所拥有的。基本上,我需要发生的是,如果每个表中有超过10%的字符(我有一个列表)是数字,我需要从BeautifulSoup实例的循环实例中删除整个表。
当它已经在BeautifulSoup中时,这可能吗?如果没有,在将它放入BS之前我该如何去做呢?
谢谢,我希望我能清楚地知道我在这里要做什么。我想我大部分时间都遇到过BeautifulSoup库的问题,我还没有用过它。
编辑:以下是apple_tables中每个表格的前两个示例:
(<table cellpadding="0" cellspacing="0" style="FONT-FAMILY:TIMES NEW ROMAN;FONT-SIZE:10PT;MARGIN-LEFT:AUTO;MARGIN-RIGHT:AUTO;WIDTH:100%;BORDER-COLLAPSE:COLLAPSE;TEXT-ALIGN:LEFT;"><tr><td colspan="1"></td></tr><tr><td style="WIDTH:100%;"></td></tr><tr><td style="VERTICAL-ALIGN:BOTTOM;PADDING-LEFT:2PX;PADDING-TOP:2PX;PADDING-BOTTOM:2PX;PADDING-RIGHT:2PX;BORDER-TOP:1PX SOLID #000000;BORDER-BOTTOM:1PX SOLID #000000;"><div style="OVERFLOW:HIDDEN;HEIGHT:5PX;FONT-SIZE:10PT;"><font style="FONT-FAMILY:INHERIT;FONT-SIZE:10PT;"> </font></div></td></tr></table>,
<table cellpadding="0" cellspacing="0" style="FONT-FAMILY:TIMES NEW ROMAN;FONT-SIZE:10PT;MARGIN-LEFT:AUTO;MARGIN-RIGHT:AUTO;WIDTH:19.53125%;BORDER-COLLAPSE:COLLAPSE;TEXT-ALIGN:LEFT;"><tr><td colspan="1"></td></tr><tr><td style="WIDTH:100%;"></td></tr><tr><td style="VERTICAL-ALIGN:BOTTOM;PADDING-LEFT:2PX;PADDING-TOP:2PX;PADDING-BOTTOM:2PX;PADDING-RIGHT:2PX;BORDER-BOTTOM:1PX SOLID #000000;"><div style="OVERFLOW:HIDDEN;HEIGHT:5PX;FONT-SIZE:10PT;"><font style="FONT-FAMILY:INHERIT;FONT-SIZE:10PT;"> </font></div></td></tr></table>)
apple_soup_16是多个公司的整个html的当前完整BS实例。我需要从该BeautifulSoup对象中删除表的实例大于10%的数字的任何地方。将BeautifulSoup代码放在这里不应该是必要的,因为这些表直接来自BS对象。每张桌子都在汤里,但我只需要删除10%的桌子。