Comment télécharger avec wget sans suivre les liens avec les paramètres


11

J'essaie de télécharger deux sites à inclure sur un CD:

http://boinc.berkeley.edu/trac/wiki
http://www.boinc-wiki.info

Le problème que j'ai, c'est que ce sont deux wikis. Ainsi, lors du téléchargement avec par exemple:

wget -r -k -np -nv -R jpg,jpeg,gif,png,tif http://www.boinc-wiki.info/

J'obtiens beaucoup de fichiers car il suit également des liens comme ...? Action = edit ...? Action = diff & version = ...

Quelqu'un connaît-il un moyen de contourner cela?

Je veux juste les pages actuelles, sans images, sans différences etc.

PS:

wget -r -k -np -nv -l 1 -R jpg,jpeg,png,gif,tif,pdf,ppt http://boinc.berkeley.edu/trac/wiki/TitleIndex

Cela a fonctionné pour berkeley mais boinc-wiki.info me pose toujours des problèmes: /

PPS:

J'ai obtenu ce qui semble être les pages les plus pertinentes avec:

wget -r -k -nv  -l 2 -R jpg,jpeg,png,gif,tif,pdf,ppt http://www.boinc-wiki.info

Pas besoin de croiser le post entre superutilisateur et serverfault serverfault.com/questions/156045/…
Bryan

Où aurais-je dû l'afficher?
Tie-fighter

C'est le bon endroit. Ce n'est pas une question de serveur.
David Z

J'ai quand même eu les meilleures réponses à serverfault;)
Tie-fighter

Réponses:


5

La nouvelle version de wget (v.1.14) résout tous ces problèmes.

Vous devez utiliser la nouvelle option --reject-regex=....pour gérer les chaînes de requête.

Notez que je n'ai pas trouvé le nouveau manuel qui inclut ces nouvelles options, vous devez donc utiliser la commande d'aide wget --help > help.txt


4
wget --reject-regex '(.*)\?(.*)' http://example.com

( --reject-type posixpar défaut). Fonctionne uniquement pour les versions récentes (> = 1.14) de wgetcependant, selon d'autres commentaires.

Attention, il semble que vous ne puissiez l'utiliser --reject-regexqu'une seule fois par wgetappel. Autrement dit, vous devez utiliser |dans une seule expression régulière si vous souhaitez sélectionner plusieurs expressions régulières:

wget --reject-regex 'expr1|expr2|…' http://example.com

Cela pourrait être vrai au sujet de la version requise. J'avais la v1.12 et l'option n'était pas valide. Après la mise à niveau vers la v1.15, c'était le cas.
2014

L'alternance des expressions rationnelles utilisant le |symbole ("pipe") ne fonctionne pas pour moi avec GNU Wget 1.16.
sampablokuper

0
wget -R "*?action=*"

Cela exclura tout ce qui contient ?action=son nom.


3
"Notez également que les chaînes de requête (chaînes à la fin d'une URL commençant par un point d'interrogation ("? ") Ne sont pas incluses dans le nom de fichier des règles d'acceptation / de rejet, même si celles-ci contribuent en fait au nom choisi pour le fichier local. Il est prévu qu'une future version de Wget fournira une option pour permettre la correspondance avec les chaînes de requête. "
Tie-fighter

Hmm, je dois avoir manqué ça. Il semble que vous ne puissiez pas faire cela avec wget alors s'il ne sait même pas qu'il s'agit de fichiers différents. Je propose un programme différent.
Daisetsu

-3

Je dirais que leeching d'un site wiki public est une mauvaise pratique, car il met une charge supplémentaire sur lui.

Si un wiki est public et que les propriétaires du site ne se soucient pas de partager le contenu, ils fournissent généralement un vidage téléchargeable (base de données ou autre). Il vous suffit donc de télécharger le pack de données, de configurer une instance locale du même moteur wiki, d'y importer les données et d'en avoir une copie locale. Après cela, si vous le souhaitez, vous pouvez faire la sangsue localement.


il y a -w secondes. par exemple -w 5. gnu.org/software/wget/manual/html_node/…
barlop
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.