Python-Aufteilung auf die neue-Zeile-Zeichen
Ich habe eine html-Datei, die ich abrufen nur der text
ich würde gerne drucken einer einzelnen Zeile
jetzt bin ich print
for line in newName.body(text=True):
print line
dieser gibt mir alles, was in den Körper
was ich möchte ist, zu drucken, wie
for line in newName.body(text=True):
print line[257:_____] # this is where i need help
statt __ oder wählen Sie eine andere Nummer zu Ende ich will, dass es die neue-Zeile-Zeichen
so wie es aussieht
for line in newName.body(text=True):
print line[257:'\n']
jedoch, dass dosent Arbeit
wie kann ich machen, dass die Arbeit?
den text, mit denen ich arbeite, befindet sich in
Körper
pre
den text möchte ich
/pre
Körper - /
- "ich würde gerne drucken einer einzelnen Zeile" tut
print newName.body(text=True)[257]
wie erwartet funktioniert? - Nein, das produziert eine Fehlermeldung "list index out of range"
- falsch gepostet Fehlermeldung der richtige ist "ValueError: substring nicht gefunden"
- Sind Sie sicher, dass mit einem regexp-wäre das nicht eine bessere Lösung ? Wie es scheint, Sie sind immer text der Körper eines HTML-Dokuments und zu versuchen, aus den 127 Zeichen bis '\n' - Sicherlich die Realität ist, diese bits von text sind wirklich ein Teil der Struktur des Dokuments, was bedeutet, Xpath oder ähnlich wäre eine bessere option sein - vielleicht wäre ein Ausschnitt aus der HTML-Seite, die Sie versuchen zu extrahieren sind.
- der code ist so etwas wie " <pre> cptn cheesebox liebt cerial </pre>' diese sind alle onseparate Linien, aber ich coudlt herauszufinden, wie es erscheinen mag-code
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie
.partition()
Methode, um die erste Zeile:vorausgesetzt
newName
ist einBeautifulSoup
Objekt. Es ist in der Regel den Namensoup
.Erhalten den text von der ersten
<pre>
- tag im html:Um eine Liste von Zeilen im text:
Wenn Sie möchten, um end-of-line-Marker in den text:
Bekommen i-te Zeile aus der Liste:
Hinweis: null-basierte Indizierung z.B.
i = 2
entspricht der 3. Zeile..getText()
. Es sollte auch die Arbeit an altenBeautifulSoup
Versionen..splitlines()
. Aber das extrahieren von Inhalt aus einer html Zeile Nummer ist sehr zerbrechlich. Aktualisieren Sie Ihre Frage das, was html-markup sehen Sie, um den text, den Sie extrahieren möchten.<pre>
tag. Jede Zeile ist string.Gibt es keine Garantie, dass Ihre HTML-Datei mehr als eine Zeile. Die web-Seite kann festgelegt werden, in Linien, sondern die Struktur der Seite nicht mit der Struktur des markup und Umgekehrt.
Nur um sicher zu sein, versuchen Sie dies:
Wenn der Wert >1 sind, dann sollten Sie in der Lage sein, um die Linie, die Sie brauchen, wie:
Vielleicht nicht die anmutige Weise, aber es funktioniert, wenn es in der Tat mehrere Zeilen.
Ist es, dass Sie wollen
line[127:line.find('\n')]
wie Sie sind sicher, dass es von127
dann ebenso müssen Sie sicher sein, es ist ein\n
.