Website-Suche

Abrufen von Webseiten mit wget, curl und lynx


Egal, ob Sie ein IT-Experte sind, der 2000 Online-Fehlerberichte in eine flache Textdatei herunterladen und analysieren muss, um zu sehen, welche Aufmerksamkeit erfordern, oder eine Mutter, die 20 Rezepte von einer gemeinfreien Website herunterladen möchte, Sie können davon profitieren, die Tools zu kennen, die Ihnen helfen, Webseiten in eine textbasierte Datei herunterzuladen. Wenn Sie mehr darüber erfahren möchten, wie Sie die von Ihnen heruntergeladenen Seiten analysieren können, können Sie einen Blick auf unseren Artikel Big Data Manipulation for Fun and Profit Part 1 werfen.

In diesem Tutorial lernen Sie:

  • Wie man Webseiten mit wget, curl und lynx abruft/herunterlädt
  • Was sind die Hauptunterschiede zwischen den Tools wget, curl und lynx?
  • Beispiele für die Verwendung von wget, curl und lynx

Abrufen von Webseiten mit wget, curl und lynx

Verwendete Softwareanforderungen und Konventionen

Bevor wir beginnen, installieren Sie bitte die 3 Dienstprogramme mit dem folgenden Befehl (auf Ubuntu oder Mint) oder verwenden Sie yum install anstelle von apt install, wenn Sie eine RedHat-basierte Linux-Distribution verwenden.

sudo apt-get install wget curl lynx

Sobald dies erledigt ist, legen wir los!

Beispiel 1: wget

Die Verwendung von wget zum Abrufen einer Seite ist einfach und unkompliziert:

wget https://linuxconfig.org/linux-complex-bash-one-liner-examples
--2020-10-03 15:30:12--  https://linuxconfig.org/linux-complex-bash-one-liner-examples
Resolving linuxconfig.org (linuxconfig.org)... 2606:4700:20::681a:20d, 2606:4700:20::681a:30d, 2606:4700:20::ac43:4b67, ...
Connecting to linuxconfig.org (linuxconfig.org)|2606:4700:20::681a:20d|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: 'linux-complex-bash-one-liner-examples’

linux-complex-bash-one-liner-examples         [ <=>                                                                                 ]  51.98K  --.-KB/s    in 0.005s  

2020-10-03 15:30:12 (9.90 MB/s) - 'linux-complex-bash-one-liner-examples’ saved [53229]

$

Hier haben wir einen Artikel von linuxconfig.org in eine Datei heruntergeladen, die standardmäßig den gleichen Namen hat wie der Name in der URL.

Schauen wir uns den Dateiinhalt an

file linux-complex-bash-one-liner-examples 
linux-complex-bash-one-liner-examples: HTML document, ASCII text, with very long lines, with CRLF, CR, LF line terminators
head -n5 linux-complex-bash-one-liner-examples 
<!DOCTYPE html>
<html lang="en-gb" dir="ltr">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />

Großartig, file (das Dateiklassifizierungsprogramm) erkennt die heruntergeladene Datei als HTML, und der Kopf bestätigt, dass die ersten 5 Zeilen (-n5) wie HTML-Code aussehen und textbasiert sind.

Beispiel 2: Locken

curl https://linuxconfig.org/linux-complex-bash-one-liner-examples > linux-complex-bash-one-liner-examples
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 53045    0 53045    0     0  84601      0 --:--:-- --:--:-- --:--:-- 84466
$

Dieses Mal haben wir curl verwendet, um das Gleiche wie in unserem ersten Beispiel zu tun. Standardmäßig gibt curl als Standardausgabe (stdout) aus und zeigt die HTML-Seite in Ihrem Terminal an! Daher leiten wir stattdessen (mit >) auf die Datei linux-complex-bash-one-liner-examples weiter.

Wir bestätigen den Inhalt nochmals:

file linux-complex-bash-one-liner-examples 
linux-complex-bash-one-liner-examples: HTML document, ASCII text, with very long lines, with CRLF, CR, LF line terminators
head -n5 linux-complex-bash-one-liner-examples 
<!DOCTYPE html>
<html lang="en-gb" dir="ltr">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />

Toll, das gleiche Ergebnis!

Eine Herausforderung, wenn wir diese(n) Datei(en) weiterverarbeiten wollen, besteht darin, dass das Format HTML-basiert ist. Wir könnten die Ausgabe mit sed oder awk und einigen halbkomplexen regulären Ausdrücken analysieren, um die Ausgabe auf reinen Text zu reduzieren, aber das ist etwas komplex und oft nicht fehlerfrei genug. Stattdessen verwenden wir ein Tool, das nativ aktiviert/programmiert wurde, um Seiten in das Textformat zu bringen.

Beispiel 3: Luchs

Lynx ist ein weiteres Tool, mit dem wir dieselbe Seite abrufen können. Im Gegensatz zu wget und curl ist lynx jedoch als vollständiger (textbasierter) Browser gedacht. Wenn wir also von lynx ausgeben, wird die Ausgabe text- und nicht html-basiert sein. Wir können den Befehl lynx -dump verwenden, um die Webseite auszugeben, auf die zugegriffen wird, anstatt einen vollständig interaktiven (testbasierten) Browser in Ihrem Linux-Client zu starten.

lynx -dump https://linuxconfig.org/linux-complex-bash-one-liner-examples > linux-complex-bash-one-liner-examples
$

Schauen wir uns den Inhalt der erstellten Datei noch einmal an:

file linux-complex-bash-one-liner-examples
linux-complex-bash-one-liner-examples: UTF-8 Unicode text
head -n5 linux-complex-bash-one-liner-examples
     * [1]Ubuntu
          +
               o [2]Back
               o [3]Ubuntu 20.04
               o [4]Ubuntu 18.04

Wie Sie sehen können, haben wir dieses Mal eine textbasierte UTF-8-Unicode-Datei, im Gegensatz zu den vorherigen wget- und curl-Beispielen, und der Befehl head bestätigt, dass die ersten 5 Zeilen textbasiert sind (mit Verweisen auf die URLs in Form von [nr]-Markierungen). Wir können die URLs gegen Ende der Datei sehen:

tail -n86 linux-complex-bash-one-liner-examples | head -n3
   Visible links
   1. https://linuxconfig.org/ubuntu
   2. https://linuxconfig.org/linux-complex-bash-one-liner-examples

Das Abrufen von Seiten auf diese Weise bietet uns den großen Vorteil, dass wir HTML-freie textbasierte Dateien haben, die wir bei Bedarf zur Weiterverarbeitung verwenden können.

Schlussfolgerung

In diesem Artikel haben wir eine kurze Einführung in die Tools wget, curl und lynx gegeben und entdeckt, wie letztere verwendet werden können, um Webseiten in einem Textformat abzurufen, bei dem alle HTML-Inhalte gelöscht werden.

Bitte gehen Sie immer verantwortungsvoll mit den hier gewonnenen Erkenntnissen um: Bitte überlasten Sie keine Webserver und rufen Sie nur gemeinfreie, nicht urheberrechtlich geschützte oder CC-0 etc. Daten/Seiten ab. Stellen Sie auch immer sicher, dass es eine herunterladbare Datenbank/einen Datensatz mit den Daten gibt, an denen Sie interessiert sind, was dem individuellen Abrufen von Webseiten vorzuziehen ist.

Genieße dein neu erworbenes Wissen und, Mama, freue dich auf den Kuchen, für den du das Rezept mit lynx --dump heruntergeladen hast! Wenn Sie weiter in eines der Tools eintauchen, hinterlassen Sie uns bitte einen Kommentar mit Ihren Entdeckungen.

Verwandte Artikel: