PHPをコマンドラインで使用して下記のサイトに掲載されているZIPファイルをダウンロードしたいと考えています。



■サイト
金融庁 EDINET  (http://info.edinet-fsa.go.jp/E01NW/

■ブラウザでの手順
1.http://info.edinet-fsa.go.jp/E01NW/ のページ右下にある「EDINETコードリスト」をクリック。
2.1で開かれるページの中央にある「EDINETコードリスト」というZIPファイルのリンクをクリックしてダウンロード。


単純にZIPのファイルパスが書かれているのではなくJavascriptを介してファイルをダウンロードさせているらしく、最初のページから遷移しないとダウンロード出来ないようなのです。
どうしたらコマンドラインからこのファイルをダウンロード出来るのでしょうか?

curlを使う形になると思いますが、似た事例でご経験のある方がいましたらどうか教えて下さい。

回答の条件
  • 1人5回まで
  • 登録:2009/10/13 13:56:38
  • 終了:2009/10/20 14:00:02

回答(1件)

id:tdoi No.1

tdoi回答回数174ベストアンサー獲得回数752009/10/13 15:50:19

ポイント60pt

JavaScriptで行っている処理は、実際にはフォームのPOSTを行っているだけです。

単純なので、ソースを見ればその内容は分かります。

なので、curlを使う必要はないかと思います。

PEAR::HTTP_Requestでも使えば十分かと思います。

1.http://info.edinet-fsa.go.jp/E01NW/ にアクセスしたデータを解析して、「EDINETコードリスト」をクリックした際の処理を実行

2.1の結果として得られるデータを解析して、中央にある「EDINETコードリスト」というZIPファイルのリンクをクリックした際の処理を実行

で取得できるはずです。

解析と書きましたが、現状のサイトに手が加えられない限りちょっとした正規表現のマッチングで十分だと思うので、それほど大変ではないかと思います。


何かの参考になれば。

  • id:nori_0000
    tdoiさんご回答ありがとうございます。
    なるほど、必ずしもcurlを使う必要はないわけですか。
    「アクセスしたデータを解析して…」というのがなかなか
    スムーズに行かない未熟者なので時間がかかりそうですが、
    PEAR::HTTP_Requestを使ってもう少し試してみたいと思います。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません