Heim >Backend-Entwicklung >Python-Tutorial >Python-Programm zum Extrahieren von Zeichenfolgen zwischen HTML-Tags

Python-Programm zum Extrahieren von Zeichenfolgen zwischen HTML-Tags

WBOY
WBOYnach vorne
2023-08-19 09:37:191710Durchsuche

Python-Programm zum Extrahieren von Zeichenfolgen zwischen HTML-Tags

HTML-Tags werden verwendet, um das Framework der Website zu gestalten. Wir geben Informationen weiter und laden Inhalte in Form von in Tags enthaltenen Zeichenfolgen hoch. Die Zeichenfolgen zwischen HTML-Tags bestimmen, wie das Element vom Browser angezeigt und interpretiert wird. Daher spielt das Extrahieren dieser Zeichenfolgen eine entscheidende Rolle bei der Datenmanipulation und -verarbeitung. Wir können die Struktur von HTML-Dokumenten analysieren und verstehen.

Diese Zeichenfolgen enthüllen die verborgenen Muster und die Logik hinter der Erstellung von Webseiten. In diesem Artikel befassen wir uns mit diesen Zeichenfolgen. Unsere Aufgabe besteht darin, Zeichenfolgen zwischen HTML-Tags zu extrahieren.

Das Problem verstehen

Wir müssen alle Zeichenfolgen zwischen HTML-Tags extrahieren. Unsere Zielzeichenfolge ist von verschiedenen Arten von Tags umgeben und nur der Inhaltsteil sollte abgerufen werden. Lassen Sie uns dieses Problem anhand eines Beispiels verstehen.

Eingabe- und Ausgabeszenarien

Betrachten wir eine Zeichenfolge -

Input:
Inp_STR = "<h1>This is a test string,</h1><p>Let's code together</p>"

Die Eingabezeichenfolge besteht aus verschiedenen HTML-Tags und wir müssen die Zeichenfolge dazwischen extrahieren.

Output: [" This is a test string,  Let's code together "]

Wie wir sehen können, werden die Tags „

“ und „

“ entfernt und die Zeichenfolge extrahiert. Nachdem wir das Problem nun verstanden haben, besprechen wir einige Lösungen.

Verwenden Sie Iteration und replace()

Diese Methode konzentriert sich auf das Entfernen und Ersetzen von HTML-Tags. Wir übergeben einen String und eine Liste verschiedener HTML-Tags. Danach initialisieren wir diese Zeichenfolge mit einem Element der Liste.

Wir durchlaufen jedes Element in der Tag-Liste und prüfen, ob es in der Originalzeichenfolge vorhanden ist. Wir übergeben eine „pos“-Variable, die den Indexwert speichert und den Iterationsprozess steuert.

Wir werden die Methode „replace()“ verwenden, um jedes Tag durch ein Leerzeichen zu ersetzen und eine Zeichenfolge ohne das HTML-Tag zu erhalten.

Die chinesische Übersetzung von

Beispiel

lautet:

Beispiel

Hier ist ein Beispiel zum Extrahieren von Zeichenfolgen zwischen HTML-Tags -

Inp_STR = "<h1>This is a test string,</h1><p>Let's code together</p>"
tags = ["<h1>", "</h1>", "<p>", "</p>", "<b>", "</b>", "<br>"]
print(f"This is the original string: {Inp_STR}")
ExStr = [Inp_STR]
pos = 0

for tag in tags:
   if tag in ExStr[pos]:
      ExStr[pos] = ExStr[pos].replace(tag, " ")
pos += 1

print(f"The extracted string is : {ExStr}")

Ausgabe

This is the original string: <h1>This is a test string,</h1><p>Let's code together</p>
The extracted string is : [" This is a test string,  Let's code together "]

Verwenden Sie das Modul für reguläre Ausdrücke + findall()

Bei dieser Methode verwenden wir ein reguläres Ausdrucksmodul, um ein bestimmtes Muster abzugleichen. Wir übergeben einen regulären Ausdruck: „(.*?)“+tag+“>“, der das Zielmuster darstellt. Dieser Modus dient zur Erfassung öffnender und schließender Tags. Hier ist „tag“ eine Variable, deren Wert durch Iteration aus der Liste der Tags ermittelt wird.

Die Funktion „findall()“ wird verwendet, um alle Vorkommen eines Musters in einem Rohstring zu finden. Wir werden alle „Übereinstimmungen“ mit der Methode „extend()“ zu einer neuen Liste hinzufügen. Auf diese Weise extrahieren wir die im HTML-Tag enthaltene Zeichenfolge.

Die chinesische Übersetzung von

Beispiel

lautet:

Beispiel

Hier ist ein Beispiel -

import re
Inp_STR = "<h1>This is a test string,</h1><p>Let's code together</p>"
tags = ["h1", "p", "b", "br"]
print(f"This is the original string: {Inp_STR}")
ExStr = []

for tag in tags:
   seq = "<"+tag+">(.*?)</"+tag+">"
   matches = re.findall(seq, Inp_STR)
   ExStr.extend(matches)
print(f"The extracted string is: {ExStr}")

Ausgabe

This is the original string: <h1>This is a test string,</h1><p>Let's code together</p>
The extracted string is: ['This is a test string,', "Let's code together"]

Verwenden Sie die Iterations- und find()-Funktion

In dieser Methode verwenden wir die Methode „find()“, um das erste Vorkommen der öffnenden und schließenden Tags in der Originalzeichenfolge abzurufen. Wir durchlaufen jedes Element in der Tag-Liste und ermitteln seine Position in der Zeichenfolge.

Eine While-Schleife wird verwendet, um die Suche nach HTML-Tags in der Zeichenfolge fortzusetzen. Wir werden eine Bedingung erstellen, um zu prüfen, ob die Zeichenfolge unvollständige Tags enthält. Bei jeder Iteration wird der Indexwert aktualisiert, um das nächste Vorkommen öffnender und schließender Tags zu finden.

Die Indexwerte aller öffnenden und schließenden Tags werden gespeichert und sobald die gesamte Zeichenfolge zugeordnet ist, verwenden wir String-Slicing, um die Zeichenfolge zwischen HTML-Tags zu extrahieren.

Die chinesische Übersetzung von

Beispiel

lautet:

Beispiel

Hier ist ein Beispiel -

Inp_STR = "<h1>This is a test string,</h1><p>Let's code together</p>"
tags = ["h1", "p", "b", "br"]
ExStr = []
print(f"The original string is: {Inp_STR}")

for tag in tags:
   tagpos1 = Inp_STR.find("<"+tag+">")
   while tagpos1 != -1:
      tagpos2 = Inp_STR.find("</"+tag+">", tagpos1)
      if tagpos2 == -1:
         break
      ExStr.append(Inp_STR[tagpos1 + len(tag)+2: tagpos2])
      tagpos1 = Inp_STR.find("<"+tag+">", tagpos2)

print(f"The extracted string is: {ExStr}")

Ausgabe

The original string is: <h1>This is a test string,</h1><p>Let's code together</p>
The extracted string is: ['This is a test string,', "Let's code together"]

Fazit

In diesem Artikel haben wir viele Möglichkeiten zum Extrahieren von Zeichenfolgen zwischen HTML-Tags besprochen. Beginnen wir mit einer einfacheren Lösung: Suchen und Ersetzen von Tags durch Leerzeichen. Wir haben auch das Modul für reguläre Ausdrücke und seine Funktion findall() verwendet, um passende Muster zu finden. Wir haben auch etwas über die Methode find() und die Anwendung von String-Slicing gelernt.

Das obige ist der detaillierte Inhalt vonPython-Programm zum Extrahieren von Zeichenfolgen zwischen HTML-Tags. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen