• ベストアンサー

ホームページのダウンロードがしたい。

テキストで、URLとファイルの保存場所を指定して、 ボタンを押すとそのページがhtmlとして保存される。 というようなプログラムを作りたいと思っています。 まず、自分としてやってみた事が ベクターよりダウンロードツールを落として使って みたのですが、https://のページに使えないのか、 他の理由があるのか、根本的なことが分かってない ので、そこで止まってしまいました。 次に、「対象をファイルに保存」が実行できたら と思い、WINDOWS APIを探してみたのですが、 どうも見つける事が出来ませんでした。 とりあえず、ステップ的に最適となる(であろう) 言語は何で、あと、ヒントとなるコマンドを教えて 頂ければと思います。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • piyo2000
  • ベストアンサー率49% (144/293)
回答No.3

socketを叩く(Winsockを使う)のが一番融通が利く作り方ですが、HTTPSを考えると得策ではないような気がします。 HTTPやHTTPS限定ということであれば、IEのWinInetというコンポーネント(DLL)を使うといいでしょう。 http://www.geocities.jp/wininet_dll_jp/ http://www.geocities.co.jp/SilkRoad/4511/vb/wininet.htm このあたりのサイトが参考になるでしょう。 >次に、「対象をファイルに保存」が実行できたら 取ってきたHTMLをファイルとして保存するだけなら、APIである必要は無いです。(C/C++にしろVBにしろ) >ステップ的に最適となる(であろう)言語は何で 上記で紹介しているサンプルはVB5/6用なので、VBAに対応させるには多少変更が必要ですが ExcelやWordなどVBAを使えるMS-Office製品をお持ちであれば、上記URLでも紹介しているようにVBまたはVBAで十分可能です。 フリーソフトのように非同期実行させたい場合はVB(VBA)はあまり得策ではありませんけどね(^^;

ssssssssss
質問者

お礼

回答ありがとうございます。 お礼が遅くなり申し訳ありません。 やりたいことはハッキリしているのですが、なかなか 取り掛かれなくて、実はまだちょっとしか見れていないです。 一番知りたかったのはソースレベルの話なので、サンプルの 紹介は大変有難いです。 年末年始の時間で何とかしたいですね。^^

その他の回答 (2)

  • Dpop
  • ベストアンサー率51% (279/544)
回答No.2

#1 です。 > サーバ(YAHOO、懸賞サイトとか)に関係者でも > ないのにソケット通信というのは可能なの > でしょうか? はい。その通りです。 サーバー側の立場で見ると、ブラウザでアクセスされていても、ソケットでアクセスされていても、やっている事は全く同じなので、一向に問題にはなりません。 概念を調べられたと言う事は、もうお気づきだと思いますが、ソケット通信はブラウザやFTPクライアントなどのクライアントプログラムが行う動作と同じことをやって挙げましょう。と言うものなのです。 ですので、ブラウザでサイトを閲覧している行為をプログラムで行うだけの事なのです。 逆に言うと、ブラウザなどクライアントソフトがやる事を(すべてである必要は無いのだけど)ソケット通信で得た結果に対して行う必要があるのです。 そのため、TCP/IPやHTTPプロトコルについても理解している必要があり、やや高度な技でもあります。 しかし、サイトのソースをプログラムで得ようと考えると、ソケット通信を利用するのが王道中の王道ですので、志があるのであれば、ぜひ試してみて下さい。 現実的には、言葉で言うほど、難しいものではありません。

ssssssssss
質問者

お礼

回答ありがとうございます。 確かに、プログラムは作って、動かしてナンボですよね。 だけど、知ってしまえば簡単なことが、知るまでは とっても大変です。 このように回答してくれる人がいるということは 有難いことです。

  • Dpop
  • ベストアンサー率51% (279/544)
回答No.1

Web屋です。OkWebの様なサイトを設計, 開発する仕事をしています。 Web屋的に発想すると、ソケット通信でサイトに接続して、 そのソースを保存すれば良いのでは無いかな。。。 と思うのですが、そう言う発想ではダメですか? どの様に実現しようとしているのか分りませんが、 ソケット通信について調べてみると、 なにか分るかも知れません。

ssssssssss
質問者

お礼

早速の回答ありがとうございます。 自分としては、エクセルVBAを使って、シートに URLとファイルの保存場所のパスを入力しておき、 それをVBAで拾って実行する。 という、形式が一番理解しやすいですね。 (出来るのであればですけど。。。) とりあえず、「ソケット通信」というのを勉強してみます。

ssssssssss
質問者

補足

ちょっとみてみました。 概念的な説明としては理解できたのですが、 実際レベルとなると、う~ん。。。 という感じです。^^; >ソケット通信でサイトに接続して ということですが、例えば、商用のサイトの サーバ(YAHOO、懸賞サイトとか)に関係者でも ないのにソケット通信というのは可能なの でしょうか?

関連するQ&A

専門家に質問してみよう