私の仕事では、ethics.ga.gov からの私の州のキャンペーン開示レポートを頻繁に確認する必要があります。ただし、状態システムは、私がこれまでに扱った中で最もくだらない Web アプリケーションの 1 つです。
レポートごとの貢献データのみを提供します。選挙サイクルごとに 6 つのレポートがあります。そして、怪我に侮辱を加えるために、システムは遅いです。大量のファイルをダウンロードする必要があるだけでなく、生成されるまでしばらく待たなければなりません。
これは、プロセスを自動化する明らかな機会のようなものです。私が計画していたのは、すべての開示レポートにリンクするページの URL を入力すると、すべての貢献レポートをダウンロードできるプログラムを作成することでした。
特定の候補者について、このページへのリンクを入力します。「キャンペーン貢献レポート」というタイトルのリスト)。次に、これらの各リンクをたどってレポート ページに移動し、そのリンクをたどって投稿ページに移動し、csv ファイルをダウンロードする予定です。csv ファイルを取得したら、(私が思うに) プロジェクトは私のコーディング能力の範囲に入ります。
私が今立ち往生している問題は、レポートの表示リンクをたどる方法がわからないことです。システムは ASP で書かれています。リンクは、「レポートの表示」の呼び出しで JavaScript ポストバック関数を呼び出します。ctl02 はコントロールの識別子です。そのコントロール識別子を必要な URL (この場合はhttp://media.ethics.ga.gov/search/Campaign/Campaign_ReportOptions.aspx?NameID=5753&FilerID=C2009000086&CDRID=85776 ) にマップするための情報が埋め込まれているようです。暗号化された __VIEWSTATE フィールド。
Firebug デバッガーをインストールして、その方法でデータを取得しようとしました。私は Firebug に非常に慣れていませんが、私が見つけることができたのは、必要な URL への GET 要求が [net] タブに表示されていることだけでした。
明らかに、どういうわけか私のブラウザは次のページを取得しています。つまり、自動化できるはずですが、今は途方に暮れています。私は本当にそれが好きになり始めているので、私はこれをPythonで取り組んできましたが、すべてが交渉可能です. 私はこれをMac(完全なgnu環境)で行っており、慣れ親しんだ環境で作業を続けたいと思っていますが、そのルートに行かなければならない場合は、ビジュアルC ++ '10を備えたWindows XP vmを持っています。
皆さんはどう思いますか?