2017-02-18 2 views
0
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 

Hier ist was ich bisher habe. Im Wesentlichen muss ich Folgendes tun: Wenn mehr als 10% der Zeichen in jeder Tabelle (von denen ich eine Liste habe) Zahlen sind, muss ich die gesamte Tabelle aus dieser Instanz der Schleife aus der BeautifulSoup-Instanz entfernen.
Ist dies möglich, während es bereits in BeautifulSoup ist? Wenn nicht, wie würde ich es machen, bevor ich es in BS setze?Wie entferne ich eine Zeichenfolge aus einer BeautifulSoup-Instanz mit bestimmten Kriterien?

Danke, und ich hoffe, es ist klar, was ich hier versuche. Ich denke, ich habe nur Probleme mit der BeautifulSoup-Bibliothek, ich habe es nicht oft benutzt.

EDIT: Hier sind die ersten zwei Beispiele dafür, was jede Tabelle wie in apple_tables aussieht:

(<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 für mehrere Unternehmen eine derzeit voll BS Instanz des gesamten HTML ist. Ich brauche irgendwo, wo die Instanz einer Tabelle mehr als 10% Nummer von diesem BeautifulSoup-Objekt entfernt werden muss. Den BeautifulSoup-Code hier einzufügen sollte eigentlich nicht notwendig sein, da diese Tabellen direkt vom BS-Objekt kommen. Jeder Tisch ist in der Suppe, aber ich brauche nur die 10%, die entfernt werden sollen.

+0

Detailcode zur Verfügung stellen. –

+0

Möchten Sie nur Texte extrahieren? –

+0

Also arbeite ich mit Jahresberichten für Unternehmen. Wenn mehr als 10% der Zeichen in der Instanz der Schleife Zahlen sind, brauche ich alles in der Instanz gegangen. – JRE0714

Antwort

0

können Sie verwenden clear()

tables.clear() 

oder decompose

tables.decompose() 
Verwandte Themen