Webサイトからのファイルのダウンロードを自動化しようとしています。通常、ファイルをダウンロードするには、ユーザー名とパスワードを使用してログインします。特定の画面に移動して、ボタンをクリックします。
Chromeの開発者モードを使用してPOSTのシーケンスを監視し、.Net WebClientクラスを使用してすべての手順を複製しようとしましたが、成功しませんでした。WebClientクラスから派生し、Cookie処理を追加しました。これは機能しているようです。ログインページに移動し、WebClient.UploadValuesを使用して投稿します。約半分の時間で動作するようです。次のステップは、レポートURLに対して別のPOSTアクションを実行するように見えます。もう一度WebClient.UploadValuesを使用しますが、サーバーからの応答は内部エラーを示すページです。
いくつか質問があります。1)一連のWebブラウザーの相互作用を複製するために、C#コードを手動でコーディングするよりも優れたツールはありますか?私は本当に、毎日特定の時間にファイルをWindowsボックスにダウンロードできることだけを気にしています。2)WebClientは、これに使用するのに最適なクラスではないようです。おそらくそれは少し単純化することです。HttpWebRequestを使用してみましたが、POST要求をエンコードする機能がありません。他の推奨事項はありますか?3)Chromeの開発者プラグインはすべてのインタラクションを表示しているように見えますが、使用するのは少し面倒です。すべての生の通信(暗号化されていませんが、サイトはhttps経由でのみアクセスされます)を確認したいので、すべての手順を実際に複製しているかどうかを確認できます。
使用している正確なコードを投稿することもできます。私がデータを取得しているサイト、具体的にはスタンダードアンドプアーズのウェブサイトです。再公開ではなく、レポートに必要な履歴データをダウンロードするためのカスタムレポートを作成する機能があります。