Ich habe vor kurzem versucht, Informationen von einer Website zu ziehen, und während ich größtenteils erfolgreich war, war es ein bisschen ein Kampf.Versuchen, Daten von einer schlecht formatierten HTML-Website zu ziehen
Ich habe zur Zeit Regex benutzen einige Informationen zu finden (hier die Namen, die ich will, betrachten)
webAddress = 'http://meridian.puzzlepirates.com/yoweb/crew/info.wm?crewid=' + str(crewid)
htmlFile = urllib.urlopen(webAddress)
htmlText = htmlFile.read()
regex = 'classic&target=(.+?)">'
pattern = re.compile(regex)
checkMatch = re.findall(pattern,htmlText)
Wie so. Das funktioniert, wenn in dieser Zeile ein konsistenter Indikator vorhanden ist. Allerdings habe ich jetzt ein Problem, bei dem mein Indikator nicht in dieser Zeile steht.
<td width="28" height="28"><a href="/ratings/top_5_0.html"><img
src="/yoweb/images/stat-5.png" width="28" height="28" border="0"
alt="Gunning"></a></td>
<td align="left">
<font size="-1">
<i><b>Exalted</b></i>/<b>Master</b>
</font>
Insbesondere sucht die vorletzte Zeile zu ziehen, aber es ist möglich, dass diese zweite bis letzte Zeile ist nicht fett gedruckt oder Kursiv/haben nicht die gleichen Worte, so eine Art mein Indikator "sein muss Gunning "weil das ist der spezifische Bereich, der mir wichtig ist. Leider ist es nicht immer in der gleichen Zeile auf einer anderen Seite, daher kann ich nicht einfach eine bestimmte Zeile ansehen, um zu versuchen, sie zu finden. Irgendwelche Vorschläge wären großartig!
EDIT
ich zum Start eingeschaltet haben, um zu versuchen Schöne Suppe zu lernen/verwenden (danke für mich zeigen in diese Richtung.
war ich nicht so klar, wie ich zuerst sein soll, so lassen Sie mich versuchen zu klären.
Insbesondere versuchen, die Reihen von einer Seite wie this
<td width="28" height="28"><a href="/ratings/top_5_0.html"><img
src="/yoweb/images/stat-5.png" width="28" height="28" border="0"
alt="Gunning"></a></td>
<td align="left">
<font size="-1">
<i><b>Exalted</b></i>/<b>Master</b>
</font>
, die der HTML-Code des Abschnitts zu ziehen, dass ich Ich suche speziell nach oben und nicht immer in der gleichen Formatierung (zB kann es nicht fett, fett oder fett und kursiv sein. Also nicht wirklich sicher, welche Methode ich verwenden könnte, um einen bestimmten Wert zuverlässig aus dieser Information zu ziehen.
Ich habe versucht, über Schriftgröße zu isolieren, aber die Anzahl der Ergebnisse ist nicht konsistent und das kann ich nicht isolieren den spezifischen stat ich will.
Mögliches Duplikat [Regex offen Tags außer XHTML self-contained tags] (http: // Stackoverflow .com/questions/1732348/regex-match-open-tags-exception-xhtml-autocontained-tags) – rohithpr
Parsen Sie xml/html nicht mit einer Regex. – Sumurai8