2016-04-11 18 views
2

Ich mache ein Webscraping-Tool, das die Anzahl der Spieler auf einem Spieleserver ermittelt. Im MomentPlatzhalter für Integer mit unbekanntem Wert

die effizienteste Methode, dies zu tun ist Requests und BS4 zu verwenden, die HTML-Quelle in eine txt-Datei zu schreiben, suchen Sie dann die Datei für

"/" 

Leider ist mein HTML enthält zwei nach vorne aufgeschlitzt mit Leerzeichen auf beiden Seiten, so muss ich der Lage sein, es wird etwas zu tun, wie

„% d /% d“

so nur die mit der ganzen Zahl, leider weiß ich nicht, die Werte auf beiden Seiten, Ich brauche es nur, um nur eine ganze Zahl auszuwählen drin.

prange = list(range(0, 65)) 
searchfile = open("data.txt", "r") 
for line in searchfile: 
    if "/" in line: 

     print (line) 
searchfile.close() 

Vielen Dank im Voraus!

Antwort

1

Sie möchten using regex nach einem bestimmten Muster in Ihrem Dokument suchen.

re.search(r'(\d)/(\d)', your_text) werden alle Vorkommen von X/Y zurück, wo X und Y sind 1-stellige Zahlen. Wenn Sie mehr als eine Ziffer möchten, können Sie schreiben und etwas wie r'(\d+)/(\d+)' schreiben.

Mit Ihrem Beispiel sollten Sie haben:

prange = list(range(0, 65)) 
searchfile = open("data.txt", "r") 
for line in searchfile: 
    m = re.search(r'(\d+/\d+)', line) 
    if m: 
     print (line) 
searchfile.close() 
+0

Ja sind die Zahlen ein zweistelliges, vielen Dank für Ihre Hilfe. Leider bin ich ein Neuling bei Python und werde weiter schauen, wie man die Methode implementiert – Will

1

Sie versuchen re verwenden, können erforderliche Muster zu finden:

>>> import re 
>>> re.search('(\d+)\s+/\s+(\d+)', 'dsdsd 111/222 dsdsds').groups() 
('111', '222') 
Verwandte Themen