Sous Linux comment puis-je récupérer une URL et obtenir son contenu dans une variable dans un script shell?Comment obtenir le contenu d'une page Web dans une variable shell?
Répondre
Vous pouvez utiliser la commande wget
pour télécharger la page et le lire dans une variable:
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
Libère le contenu de la page. Nous spécifions -
pour obtenir le vidage sur la sortie standard et collecter cela dans la variable content
. Vous pouvez ajouter l'option -q
quiet pour désactiver la sortie wget.
Vous pouvez utiliser la commande curl pour cette aswell comme:
content=$(curl -L google.com)
echo $content
Nous devons utiliser l'option -L
comme la page que nous demandons peut-être changé. Dans ce cas, nous devons obtenir la page du nouvel emplacement. L'option -L
ou --location
nous aide avec ceci.
Il existe la commande wget
ou curl
.
Vous pouvez maintenant utiliser le fichier que vous avez téléchargé avec wget. Ou vous pouvez gérer un flux avec boucle.
Ressources:
content=`wget -O - $url`
'$ (...)' est préféré à '' ... '', voir http://mywiki.wooledge.org/BashFAQ/082 – Giacomo
Je suppose que je montre mon âge. De retour dans la journée, tout ce que nous avions étaient des backticks ... et nous l'aimions! Maintenant sortez de ma pelouse! –
@rjack: (Mais l'article que vous avez lié à fait un très bon cas pour la syntaxe $ (...).) –
Vous pouvez utiliser curl
ou wget
pour récupérer les données brutes, ou vous pouvez utiliser w3m -dump
pour avoir une belle représentation textuelle 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.
il y a plusieurs façons de faire une page en ligne de commande ... mais cela dépend aussi si vous voulez que la source de code ou la page elle-même:
Si vous avez besoin de code source
avec boucle: curl $url
avec wget: wget -O - $url
mais si vous wa nt pour obtenir ce que vous pouvez voir avec un navigateur, le lynx peut être utile: lynx -dump $url
Je pense que vous pouvez trouver tant de solutions pour ce petit problème, peut-être vous devriez lire toutes les pages de manuel pour les commandes.Et ne pas oublier de remplacer $ url par votre url :)
Bonne chance :)
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//EN"> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=utf-8"> <TITLE>Example Web Page</TITLE> </HEAD> <body> <p>You have reached this web page by typing "example.com", "example.net","example.org" or "example.edu" into your web browser.</p> <p>These domain names are reserved for use in documentation and are not available for registration. See <a href="http://www.rfc-editor.org/rfc/rfc2606.txt">RFC 2606</a>, Section 3.</p> </BODY> </HTML>
wget -O-
, curl
et lynx -source
comportent de manière similaire.
J'ai expliqué, et votre question a été éditée depuis, donc mon downvote ne veut plus rien dire ... (Il s'est en fait transformé en un upvote). –
C'est un truc vraiment sympa. J'appelle un script shell via un script php sur un serveur proxy. Lorsqu'on lui demande, le serveur proxy allume les serveurs coûteux qui se ferment après 2 heures. J'ai besoin de la sortie de wget pour la sortie standard pour revenir à l'enregistrement de la console Jenkins. – Dennis
je suis encore à obtenir ceci ... quelqu'un peut démontrer comment, par exemple. obtenir un tag img dans une variable pour ce lien http://www2.watchop.io/manga2/read/one-piece/1/4 ?? – juggernaut1996