J'aimerais télécharger un fichier à l'aide de l'utilitaire wget. J'ai suivi les instructions sur " Comment utiliser wget/curl pour télécharger depuis un site sur lequel je suis connecté? " et le processus de téléchargement fonctionne; Cependant, les cookies enregistrés expirent après un certain temps, je ne peux donc pas continuer à télécharger le fichier le jour suivant.
Voici l'URL à partir de laquelle je tente de télécharger un fichier:
https://frbservices.org/EPaymentsDirectory/FedACHdir.txt
La page de téléchargement nécessite que je clique sur le bouton "Accepter" avant de pouvoir procéder au téléchargement.
Est-il possible d'inclure la soumission "Accepter" avec l'utilitaire wget?
Je vous remercie.
Vous pouvez soumettre un formulaire à l'aide de wget
, à l'aide de l'option --post-data
. Tout d'abord, regardez le formulaire utilisé par la page:
<form name="acceptedForm" id="acceptedForm" action="submitAgreement" method="post">
...
<button id="agree_terms_use" name="agreementValue" type="submit" value="Agree">Agree</button>
<button id="disagree_terms_use" name="agreementValue" type="submit" value="Do Not Agree">Do Not Agree</button>
Généralement, la valeur de l'attribut action
est utilisée pour obtenir l'URL cible, qui devient https://frbservices.org/EPaymentsDirectory/submitAgreement
. Les name
s des éléments de formulaire deviennent les paramètres. Ensuite, vous devez enregistrer les cookies que vous recevez en acceptant le contrat. De this SO post , nous pouvons construire la commande nécessaire:
wget --post-data="agreementValue=Agree" https://frbservices.org/EPaymentsDirectory/submitAgreement --save-cookies cookie.txt --keep-session-cookies --delete-after
Ensuite, nous pouvons utiliser ces cookies pour télécharger le fichier:
wget --load-cookies=cookie.txt 'https://frbservices.org/EPaymentsDirectory/FedACHdir.txt?AgreementSessionObject=Agree'