Certaines parties de wikipedia apparaissent différemment lorsque vous êtes connecté. Je voudrais wget les pages utilisateur afin qu'elles apparaissent comme si j'étais connecté.
Y a-t-il un moyen de wget des pages utilisateur comme celle-ci
http://en.wikipedia.org/wiki/User:A
c'est la page de connexion:
http://en.wikipedia.org/w/index.php?title=Special:UserLogin&returnto=Login&campaign=ACP3
Réponses:
Le moyen le plus simple: connectez-vous avec votre navigateur et donnez les cookies pour wget
Méthode la plus simple: en général, vous devez fournir à wget ou curl les cookies (connectés) d'un site Web particulier pour qu'ils puissent récupérer les pages comme si vous étiez connecté .
Si vous utilisez Firefox, vous pourrez le faire facilement via le module complémentaire Export Cookies . Installez le module complémentaire et:
cookies.txt
fichier (vous pouvez changer le nom du fichier / la destination).Ouvrez un terminal et utilisez-le
wget
avec l'--load-cookies=FILENAME
option, par exemplecurl --cookie cookies.txt ...
(Je vais essayer de mettre à jour cette réponse pour les utilisateurs de Chrome / Chromium)
Le plus difficile: utilisez curl (de préférence) ou wget pour gérer toute la session
--cookie-jar
ou wget avec les--save-cookies --keep-session-cookies
options, ainsi que la méthode PUT HTTP / S pour se connecter à un site, enregistrez les témoins de connexion, puis les utiliser pour simuler un navigateur.la source
grep mydomain cookies.txt > mydomain-cookies.txt
Une autre solution facile qui a fonctionné pour moi sans rien installer de plus:
Cela vous donnera une commande que vous pouvez coller directement dans votre shell, qui a toutes vos informations d'identification de cookie, par exemple
Vous pouvez ensuite modifier l'URL dans la commande pour récupérer ce que vous voulez.
la source
Avec cURL, il est très facile de gérer les cookies de deux manières.
curl www.target-url.com -c cookie.txt
puis sauvegardera un fichier nommé cookie.txt. Mais vous devez vous connecter, si besoin d'utiliser --data avec des arguments tels que :curl -X --data "var1=1&var2=2" www.target-url.com/login.php -c cookie.txt
. Une fois que vous avez enregistré un cookie, vous pouvez l'envoyer avec:curl www.target-url.com/?user-page.php -b cookie.txt
Utilisez simplement -c (--cookie) ou -b (--cookie-jar) pour enregistrer et envoyer.
Note1: Utiliser cURL CLI est beaucoup plus facile que PHP et peut-être plus rapide;)
Pour enregistrer le contenu final, vous pouvez facilement ajouter
> filename.html
à votre commande cURL, puis enregistrer le code HTML complet.Note2 sur "full": Vous ne pouvez pas rendre javascript avec cURL, obtenez juste le code source.
la source
-X
paramètre signifie "do post", mais utiliser--data=xxx
-X
est implicite, vous pouvez donc le supprimer.-b
estread cookie
Pour ceux toujours intéressés par ces questions, il existe une extension Chrome très utile appelée CurlWGet qui vous permet de générer une
wget
/curl
requête avec des mesures d'authentification, etc. en un clic. Pour installer cette extension, suivez les étapes ci-dessous:Prendre plaisir!
la source
L'article de blog Wget with Firefox Cookies montre comment accéder au fichier de données SQLite dans lequel Firefox stocke ses cookies. De cette façon, il n'est pas nécessaire d'exporter manuellement les cookies pour une utilisation avec wget. Un commentaire suggère que cela ne fonctionne pas avec les cookies de session, mais cela a bien fonctionné pour les sites avec lesquels je l'ai essayé.
la source
jetez un oeil à cliget pour Firefox.
Lorsque vous êtes sur le point de télécharger, dans la dernière boîte de dialogue de téléchargement, vous avez la possibilité de copier le téléchargement en ligne de commande curl dans le Presse-papiers.
la source
Avez-vous essayé cela?
la source
Essayez quelque chose comme:
Voir aussi ce lien:
Comment télécharger cette page web avec wget?
la source
> filename.html
pour enregistrer la sortie dans le répertoire en cours ou pour mettre un chemin de fichier complet. Ceci s'applique aux systèmes Linux et Windows.Pour les connexions de site Web plus complexes, vous devez également envisager d'utiliser un script Python et un module imitant un navigateur, tel que http://wwwsearch.sourceforge.net/mechanize/ au lieu de
curl
ouwget
.De cette façon, les cookies de session sont gérés automatiquement, vous pouvez suivre les liens et remplir les formulaires de connexion, et ainsi "script" vous-même tout au long du processus de connexion, comme si vous utilisiez votre navigateur Web.
la source