Remplacer curl -s par wget -q -O- pour n’utiliser que wget, et à la place de [process] ajouter un savant mélange de grep et de sed pour nettoyer/reconstruire les url (il est certainement possible de n’utiliser que sed mais j’ai pas cherché), l’astuce du :
... | curl -s $(cat)
fait qu’on peut se passer de boucle for, de même à la fin on peut faire [process] | wget -xc $(cat). ;-)
Certains l’auront noté, il faut faire attention parce que certaines url sont en .csp?quelquechose, et que d’autres commencent par // au lieu de http://.
Note : le sort | uniq peut être remplacé par un sort -u. Perso je n’ai pas essayé de savoir s’il y avait des url en doublon avec ma méthode, mais l’option -c de wget me garantie de ne pas retélécharger ce qui est déjà complètement téléchargé (mais ça n’économise pas la requête) et de reprendre en cours de route s’il y a eu une quelconque interruption quelque part dans le réseau. [Edit: il y a des doublons, oui]
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Ma méthode
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal Livre O'Reilly en téléchargement gratuit légal. Évalué à 5. Dernière modification le 11 février 2018 à 18:26.
Pour obtenir le contenu de toutes les pages qui contiennent des liens
.cspsans tout aspirer (ni utiliser un service tiers pour ce faire) je fais ça:Remplacer
curl -sparwget -q -O-pour n’utiliser quewget, et à la place de[process]ajouter un savant mélange degrepet desedpour nettoyer/reconstruire les url (il est certainement possible de n’utiliser quesedmais j’ai pas cherché), l’astuce du :fait qu’on peut se passer de boucle
for, de même à la fin on peut faire[process] | wget -xc $(cat). ;-)Certains l’auront noté, il faut faire attention parce que certaines url sont en
.csp?quelquechose, et que d’autres commencent par//au lieu dehttp://.Note : le
sort | uniqpeut être remplacé par unsort -u. Perso je n’ai pas essayé de savoir s’il y avait des url en doublon avec ma méthode, mais l’option-cde wget me garantie de ne pas retélécharger ce qui est déjà complètement téléchargé (mais ça n’économise pas la requête) et de reprendre en cours de route s’il y a eu une quelconque interruption quelque part dans le réseau. [Edit: il y a des doublons, oui]ce commentaire est sous licence cc by 4 et précédentes