Sous Linux, comment puis-je récupérer une URL et obtenir son contenu dans une variable du script Shell?
Vous pouvez utiliser la commande wget
pour télécharger la page et la lire dans une variable sous la forme suivante:
content=$(wget google.com -q -O -)
echo $content
Nous utilisons l'option -O
de wget
qui nous permet de spécifier le nom du fichier dans lequel wget
vide le contenu de la page. Nous spécifions -
pour obtenir le dump sur la sortie standard et le rassembler dans la variable content
. Vous pouvez ajouter l'option -q
quiet pour désactiver la sortie wget.
Vous pouvez utiliser la commande curl pour cela aussi:
content=$(curl -L google.com)
echo $content
Nous devons utiliser l'option -L
car la page que nous demandons a peut-être été déplacée. Dans ce cas, nous devons extraire la page du nouvel emplacement. L'option -L
ou --location
nous aide à cela.
Il y a plusieurs façons d'obtenir une page à partir de la ligne de commande ... mais cela dépend également du code source ou de la page elle-même:
Si vous avez besoin du code source:
avec curl:
curl $url
avec wget:
wget -O - $url
mais si vous voulez obtenir ce que vous pouvez voir avec un navigateur, Lynx peut être utile:
lynx -dump $url
Je pense que vous pouvez trouver autant de solutions à ce petit problème que vous devriez peut-être lire toutes les pages de manuel de ces commandes. Et n'oubliez pas de remplacer $url
par votre URL :)
Bonne chance :)
Il y a la commande wget
ou le curl
.
Vous pouvez maintenant utiliser le fichier que vous avez téléchargé avec wget. Ou vous pouvez gérer un flux avec curl.
Ressources:
content=`wget -O - $url`
Vous pouvez utiliser curl
ou wget
pour récupérer les données brutes ou vous pouvez utiliser w3m -dump
pour obtenir une représentation Nice texte d'une page Web.
$ foo=$(w3m -dump http://www.example.com/); echo $foo
You have reached this web page by typing "example.com", "example.net","example.org" or "example.edu" into your web browser. These domain names are reserved for use in documentation and are not available for registration. See RFC 2606, Section 3.
Si vous avez LWP installé, il fournit un binaire simplement nommé " GET ".
$ GET http://example.com <! DOCTYPE HTML PUBLIC "- // W3C // DTD HTML 4.01 Transitional // FR"> <HTML> <HEAD> <META http-equiv = "Contenu-Type" content = "text/html; charset = utf-8"> <TITLE> Exemple de page Web </ TITLE > </ HEAD> <Body> <P> Vous avez accédé à cette page Web en tapant "exemple.comquot;, " Exemple. netquot;, "exemple.orgquot ou" exemple.eduquot; dans votre navigateur Web. </ p> <p> Ces noms de domaine sont réservés à une utilisation dans la documentation et ne sont pas disponibles pour l'enregistrement. Voir <a href="http://www.rfc-editor.org/rfc/rfc2606.txt"> RFC 2606 </a>, section 3. </ P> < /BODY> </HTML>
wget -O-
, curl
et lynx -source
se comportent de la même manière.