Wgetユーティリティを使用してファイルをダウンロードしたい。 「 wget/curlを使用して、ログインしているサイトからダウンロードするにはどうすればよいですか? 」の指示に従い、ダウンロードプロセスは機能します。ただし、保存されたCookieは一定の時間が経過すると有効期限が切れるため、翌日にファイルのダウンロードを続行できません。
ファイルをダウンロードしようとしているURLは次のとおりです。
https://frbservices.org/EPaymentsDirectory/FedACHdir.txt
ダウンロードページでは、ダウンロードに進む前に[同意する]ボタンをクリックする必要があります。
Wgetユーティリティに「同意する」送信を含める方法はありますか?
ありがとうございました。
--post-data
オプションを使用して、wget
を使用してフォームを送信できます。まず、ページが使用するフォームを見てください。
<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>
通常、action
属性の値はターゲットURLを取得するために使用され、https://frbservices.org/EPaymentsDirectory/submitAgreement
になります。フォーム要素のname
sがパラメーターになります。次に、契約への同意から取得したCookieを保存する必要があります。 this SO post から、必要なコマンドを作成できます。
wget --post-data="agreementValue=Agree" https://frbservices.org/EPaymentsDirectory/submitAgreement --save-cookies cookie.txt --keep-session-cookies --delete-after
次に、これらのCookieを使用してファイルをダウンロードできます。
wget --load-cookies=cookie.txt 'https://frbservices.org/EPaymentsDirectory/FedACHdir.txt?AgreementSessionObject=Agree'