J'utilise wget --mirror --html-extension --convert-links
Pour refléter un site, mais je me retrouve avec beaucoup de noms de fichiers dans le format post.php?id=#.html
. Lorsque j'essaie de les afficher dans un navigateur, il échoue, car le navigateur ignore la chaîne de requête lors du chargement du fichier. Y a-t-il un moyen de remplacer le ?
caractère dans les noms de fichiers avec autre chose?
La réponse de --restrict-file-names=windows
Travaillé correctement. En conjonction avec les drapeaux --convert-links
et --adjust-extension
/-E
(anciennement nommé --html-extension
, qui fonctionne également mais est obsolète) il produit un miroir qui se comporte comme prévu.
wget --mirror --adjust-extension --convert-links --restrict-file-names=windows http://www.example
Voir le --restrict-file-names
option. Bien que cela ne soit pas exactement destiné à cet objectif particulier, --restrict-file-names=windows
vous aidera probablement à vous aider à:
--Restrict-noms-noms = modes
Modifier les caractères trouvés dans les URL distantes doivent être échappés pendant la génération de noms de fichiers locaux. [...]
Lorsque "Windows" est donné, wget échappe aux personnages \, |, /,: ,?, ",", <, <,> et les caractères de contrôle dans les gammes 0-31 et 128--159. En plus de cette , Wget en mode Windows utilise + au lieu de: Pour séparer l'hôte et le port dans les noms de fichiers locaux, et utilise @ au lieu de séparer la partie de requête du nom de fichier du reste. Par conséquent, une URL qui serait enregistrée comme www. xemacs.org:4300/search.pl?input=blah en mode Unix serait enregistré comme www.xemacs.org+4300/search.pl@input=blah en mode Windows.