Ich versuche gerade, einige Daten von einer Webseite zu kratzen. Die Daten, die ich brauche, sind innerhalb des Tags <meta>
der HTML-Quelle. Das Scrapen der Daten und das Speichern in einem String mit BeautifulSoup ist kein Problem.Wie extrahiert man mehrere Werte aus demselben String mit Regex in Python?
Der String enthält 2 Zahlen, die ich extrahieren möchte. Jede dieser Zahlen (Überprüfungsergebnisse von 1 bis 100) sollte einer bestimmten Variablen für die weitere Verarbeitung zugewiesen werden.
test_str = "<meta content=\"Overall Rating: 79/100 ... Some Info ... Score: 86/100 \"/>"
Der erste Wert ist 79/100
und die zweite ist 86/100
, aber ich brauche nur 79
und 86
. Bis jetzt habe ich eine Regex-Suche erstellt, um diese Werte zu finden und dann .replace("/100")
, um Dinge aufzuräumen.
Aber mit meinem Code, ich bekomme nur den Wert für die erste Regex-Suche, die 79
ist. Ich habe versucht, den zweiten Wert mit m.group(1)
zu bekommen, aber es funktioniert nicht.
Was fehlt mir?
test_str = "<meta content=\"Overall Rating: 79/100 ... Some Info ... Score: 86/100 \"/>"
m = re.search("../100", test_str)
if m:
found = m.group(0).replace("/100","")
print found
# output -> 79
Danke für Ihre Hilfe.
Mit freundlichen Grüßen!
' re.findall' gibt ein Array von Übereinstimmungen zurück – Ludisposed
Kratzen Sie die Webseite und nehmen Sie dann die gesamte HTML-Quelle und wenden Sie Regex darauf an? Ich frage, weil Ihr Codebeispiel keinen schönen Code zeigt. – Tomalak
Danke! @Tomalak Nein Ich speichere nur die Daten in einem String mit \t 'meta_description = soup.find (" meta ", {" name ":" rating-data "})'. Ich habe den Teil von BeautifulSoup einfach nicht aufgenommen, um die Dinge einfach zu halten. –