Wie extrahierst du eine URL aus einer Zeichenkette mit Python?

8

Zum Beispiel:

%Vor%

Wie kann ich "http://www.google.com" extrahieren?

(Jeder Link hat das gleiche Format, d. h. "http: //")

    
Sheldon 18.03.2012, 17:41
quelle

3 Antworten

20

Es mag einige Wege geben, dies zu tun, aber am saubersten wäre es, regex

zu verwenden %Vor%

Wenn es mehrere Links geben kann, können Sie etwas ähnliches wie unten verwenden

%Vor%     
Abhijit 18.03.2012, 17:48
quelle
7

Um eine Web-URL in einer generischen Zeichenfolge zu finden, können Sie einen regulären Ausdruck (Regex) .

Eine einfache Regex für die URL-Übereinstimmung wie die folgende sollte zu Ihrem Fall passen.

%Vor%

Wenn Sie noch genauer sein möchten, sollten Sie im TLD-Bereich sicherstellen, dass die TLD eine gültige TLD ist (siehe die vollständige Liste der gültigen TLDs hier: Ссылка ):

%Vor%

Dann können Sie einfach die vorherige Regex kompilieren und verwenden, um mögliche Übereinstimmungen zu finden:

%Vor%

Im Fall der Zeichenfolge "Dies ist ein Link Ссылка " wird Folgendes ausgegeben:

%Vor%

Wenn Sie die Eingabe mit einer komplexeren URL ändern, zum Beispiel "Dies ist auch eine URL Ссылка aber das ist nicht mehr" wird die Ausgabe sein:

%Vor%

HINWEIS: Wenn Sie nach mehr URLs in einer einzelnen Zeichenfolge suchen, können Sie immer noch denselben Regex verwenden, aber verwenden Sie einfach findall () statt Suche () .

    
Paolo Rovelli 11.08.2015 21:16
quelle
5

Es gibt eine andere Möglichkeit, URLs aus Text einfach zu extrahieren. Sie können urlextract für Sie verwenden, installieren Sie es einfach über pip:

%Vor%

und dann kannst du es so verwenden:

%Vor%

Sie finden weitere Informationen auf meiner GitHub-Seite: Ссылка

HINWEIS: Es lädt eine Liste von TLDs von iana.org herunter, um Sie auf dem Laufenden zu halten. Aber wenn das Programm keinen Internetzugang hat, dann ist es nicht für Sie.

    
user7580408 15.02.2017 16:40
quelle

Tags und Links