Pourquoi ne wget ne télécharger que le index.html pour certains sites web?
Je suis en train d'utiliser pour la commande wget:
wget -p http://www.example.com
pour extraire tous les fichiers sur la page principale. Pour certains sites, il fonctionne, mais dans la plupart des cas, il ne télécharger que le index.html. J'ai essayé le wget -r de la commande, mais il ne fonctionne pas. Quelqu'un sait comment faire pour récupérer tous les fichiers sur une page, ou tout simplement me donner une liste de fichiers et d'url correspondante sur la page?
- Avez-vous un exemple d'URL ?
- Comment est-ce différent de votre question précédente? Si c'est le même problème, modifiez votre vieille question de la clarifier.
- Double Possible de comment obtenir une liste de toutes les pistes/fichiers sur une page web à l'aide de wget ou curl en php?
Vous devez vous connecter pour publier un commentaire.
Wget est également en mesure de télécharger l'intégralité d'un site web. Mais parce que cela peut mettre une lourde charge sur le serveur, wget obéir à la robots.txt fichier.
Le paramètre-p indique wget pour inclure tous les fichiers, y compris les images. Cela signifie que tous les fichiers HTML va regarder comment ils doivent le faire.
Alors que faire si vous ne voulez pas wget à obéir par la robots.txt fichier? Vous pouvez simplement ajouter -e robots=off à la commande comme ceci:
Que de nombreux sites ne vous permettra pas de télécharger l'ensemble du site, ils vont vérifier votre navigateurs identité. Pour contourner ce problème, utilisez -U mozilla comme je l'ai expliqué ci-dessus.
Beaucoup de propriétaires de site web ne sera pas comme le fait que le téléchargement de la totalité de leur site. Si le serveur voit que vous téléchargez une grande quantité de fichiers, il peut automatiquement ajouter à la liste noire. Le moyen de contourner cela est d'attendre quelques secondes après chaque téléchargement. La façon de le faire à l'aide de wget est en incluant --wait=X (où X est le nombre de secondes.)
vous pouvez également utiliser le paramètre: --random-d'attendre pour wget choisi de façon aléatoire un nombre de secondes à attendre. À inclure dans la commande:
http://amazon.com
il ne fonctionnera pas parce que vous allez être redirigé vers http://www.amazon.com mais si vous allez utiliserhttp://www.amazon.com
il va commencer à télécharger tout le site. La capacité à ne pas suivre fichier robots est pas quelque chose de très "poli", donc il ne fonctionnera pas comme bon comme vous pouvez l'imaginer.--random-wait
peut également être utilisé en paramètre-w X
oùX
est le temps en secondes et elle est utilisée comme valeur de base pour le calcul de ce que le hasard des temps d'attente sera.Tout d'abord, pour clarifier la question, l'objectif est de télécharger
index.html
en plus de toutes les pièces nécessaires de la page (images, etc). Le-p
option est équivalente à--page-requisites
.La raison pour laquelle la page conditions ne sont pas toujours téléchargé, c'est qu'ils sont souvent hébergées sur un autre domaine à partir de la page d'origine (d'un CDN, par exemple). Par défaut, wget refuse de visiter d'autres hôtes, si vous avez besoin de permettre d'accueil couvrant avec la
--span-hosts
option.Si vous avez besoin d'être en mesure de charger
index.html
et avoir toutes les conditions de charge à partir de la version locale, vous aurez besoin d'ajouter le--convert-links
option, de sorte que les Url dansimg
src attributs (par exemple) sont réécrites par rapport à l'Url pointant vers les versions locales.En option, vous pouvez également enregistrer tous les fichiers dans un seul "host" dans le répertoire en ajoutant le
--no-host-directories
option, ou d'enregistrer tous les fichiers dans un seul répertoire plat en ajoutant le--no-directories
option.À l'aide de
--no-directories
entraînera beaucoup de fichiers en cours de téléchargement dans le répertoire en cours, de sorte que vous voudrez probablement pour spécifier un nom de dossier pour les fichiers de sortie, à l'aide de--directory-prefix
.http://indiabix.com/civil-engineering/questions-and-answers/
sous ce lien , je veux wget pour visiter chaque catégorie/chapitre et télécharger toutes les images,à partir de chaque page dans toutes les sections (sur la barre latérale gauche). Avis, par les images,je veux dire toutes les images, y compris les images des Mathématiques, des formules impliqués dans les questions. le Problème est que le téléchargement s'arrête après le téléchargement index.html. Un exemple de travail de cette affaire serait génial !!!--mirror
option est la plus simple, et peut être suffisant pour vos besoins.--span-hosts
, ajouter-D<domain-list>
de limiter étendant à certains domaines.wget -rkEpHN -e robots=off -U mozilla http://www.yinwang.org/
etwget -rkEpHN -Dyinwang.org -e robots=off -U mozilla http://www.yinwang.org/
et de vérifier les résultats?-r
(récursif) drapeau, ne sont donc pas pertinents pour cette question/réponse.--span-hosts
avec--domain=
m'a sauvé. J'ai eu un site web avec des images sur le ststic sous-domaine, de sorte que wget ne pouvais pas retrive euxLe lien que vous avez fourni est la page d'accueil ou /index.html Donc il est clair que vous obtenez seulement un index.html page. Pour un téléchargement, par exemple, pour "test.zip" fichier, vous devez ajouter le nom exact du fichier à la fin. Par exemple, utilisez le lien suivant pour le télécharger test.zip fichier:
Téléchargement Complet d'un Site web en Utilisant
wget --mirror
Est la suivante en ligne de commande qui vous souhaitez exécuter lorsque vous voulez télécharger un site web complet et mis à disposition pour un affichage local.
–miroir: activer les options appropriées pour la mise en miroir.
-p: télécharger tous les fichiers qui sont nécessaires pour afficher correctement une page HTML.
–convertir-liens: après le téléchargement, convertir les liens dans le document
pour un affichage local.
-P ./LOCAL-DIR: enregistrez tous les fichiers et répertoires dans le répertoire spécifié
Télécharger Uniquement Certains Types De Fichiers À L'Aide De
wget -r -A
Vous pouvez utiliser ce en vertu de l'une des situations suivantes:
Télécharger toutes les images d'un site web,
Télécharger toutes les vidéos à partir d'un site web,
--mirror
option a été ce qui a finalement fait le travail pour moi.Je sais que ce fil est vieux, mais essayez ce qui est mentionné par Ritesh avec:
Il a travaillé pour moi!
Un autre problème pourrait être que le site que vous êtes en miroir utilise des liens sans
www
. Donc, si vous spécifiezwget -p -r http://www.example.com
ne sera pas le téléchargement de tout lien (stagiaire) pages, parce qu'ils sont issus d'un "différent" du domaine. Si c'est le cas, alors l'utilisation
wget -p -r http://example.com
à la place (sans
www
).Si vous recherchez
index.html
dans le wget manuel vous pouvez trouver une option--default-page=name
qui estindex.html
par défaut. Vous pouvez modifier àindex.php
par exemple.Si vous obtenez seulement la
index.html
et ce fichier ressemble, il ne contient que des données binaires (c'est à dire pas de texte lisible, seulement des caractères de contrôle), puis le site est probablement l'envoi des données à l'aide degzip
de compression.Vous pouvez le vérifier en exécutant
cat index.html | gunzip
pour voir si c'sorties lisible HTML.Si c'est le cas, alors
wget
's récursif de la fonction (-r
) ne fonctionne pas. Il y a un patch pourwget
de travailler avec gzip compressed data, mais il ne semble pas être dans la version standard encore.J'ai eu le même problème lors du téléchargement des fichiers de CFSv2 modèle. Je l'ai résolu en utilisant le mélange des réponses ci-dessus, mais en y ajoutant le paramètre
--no-check-certificate
wget -nH --cut-dirs=2 -p -e robots=off --random-wait -c -r -l 1 -A "flxf*.grb2" -U Mozilla --no-check-certificate https://nomads.ncdc.noaa.gov/modeldata/cfsv2_forecast_6-hourly_9mon_flxf/2018/201801/20180101/2018010100/
Voici une brève explication de chaque paramètre utilisé, pour une explication plus aller à la GNU wget 1.2 Manuel
-nH
équivalent à--no-host-directories
: Désactiver la génération de l'hôte préfixé répertoires. Dans ce cas, d'éviter la génération de l'annuaire./https://nomads.ncdc.noaa.gov/
--cut-dirs=<number>
: Ignorer les composants d'annuaire. Dans ce cas, d'éviter la génération de l'répertoires./modeldata/cfsv2_forecast_6-hourly_9mon_flxf/
-p
équivalent à--page-requisites
: Cette option permet de Wget pour télécharger tous les fichiers qui sont nécessaires pour afficher correctement une page HTML. Cela inclut des choses telles que inline les images, les sons, et référencé les feuilles de style.-e robots=off
: éviter le télécharger robots.txt fichier-random-wait
: Causes, le délai entre la demande varie entre 0,5 et 1,5 * secondes, où a été spécifié à l'aide de la--wait
option.-c
équivalent à--continue
: continuer à être partiellement fichier téléchargé.-r
équivalent à--recursive
: allumez récursive de la récupération. La valeur par défaut de la profondeur maximale est de 5-l <depth>
équivalent à--level <depth>
: Spécifier la récursivité profondeur maximale niveau-A <acclist>
équivalent à--accept <acclist>
: spécifier une liste séparée par des virgules des suffixes de nom ou de modèles à accepter.-U <agent-string>
équivalent à--user-agent=<agent-string>
: Le protocole HTTP permet aux clients de s'identifier à l'aide d'un Agent Utilisateur de champ d'en-tête. Cela permet de distinguer les WWW logiciel, généralement à des fins statistiques ou pour le suivi des violations du protocole. Wget normalement identifie comme " Wget/version’, la version étant le numéro de la version de Wget.--no-check-certificate
: Ne pas vérifier le certificat du serveur à l'encontre de la disposition des autorités de certification.