
今javascriptをやっています。
javascriptで指定したサイトのソースコードが読み込めないものかを試しているのですけど、やりかたが全然わかりません。
普通のWEBページで右クリックをして「ソースの表示」って出るじゃないですか、その内容をそのまま取得できれば良いのです。
とりあえず「Yahoo!JAPAN」のトップページのソースコードを取得できれば良いのです。
・ソースコードの取得がjavascriptで出来るのか出来ないのか。
・出来るならどのようなプログラムを書けばよいのか。
・出来ないのならば他に出来るプログラミング言語は何か。
と言う質問に分かる部分だけ答えてくださればありがたいです。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
もしあなたがお使いのPCがWindowsで単純にサイトのソースを取得したいだけというならば、以下のスクリプトを test.js などのファイル名で保存してダブルクリックすれば取得できます。
var xml2 = new ActiveXObject("MSXML2.XMLHTTP");
xml2.Open("GET", "http://www.yahoo.co.jp/", "False");
xml2.send();
WScript.Echo(xml2.responseText);
これは WSH と呼ばれるものです。
もしあなたが、このスクリプトをインターネット上にHTMLファイルとして公開して、その上で同じことをしたいのならばNo1さんの言う通り、できません。
No.3
- 回答日時:
No.2です。
≫インターネット上にHTMLファイルとして公開することは、何か法律に触れるということでしょうか?
法律は関係ありません。
ブラウザの仕様と言えばいいのでしょうか。
例えばあなたのページでJavaScriptを使って銀行のサイトのソースを取ってきて、あたかも銀行のサイトになりすますことができたならば、アクセスしてきた人は勘違いしてログインIDとパスワードを入力するかもしれません。
そうするとあなたはその人のアカウントを盗むことができるわけです。
なのでブラウザで実行するJavaScriptは他のサイトにアクセスできないように制限されています。
同じドメイン上であればアクセスできます。
実際に試してみるとよくわかると思います。
No.1
- 回答日時:
> ・ソースコードの取得がjavascriptで出来るのか出来ないのか。
「ソースコードの取得」はできますが、「「Yahoo!JAPAN」のトップページのソースコードを取得」は出来ません。
JavaScriptでは、セキュリティの観点から「クロスドメイン制限」といって、
JavaScriptを動かしているぺージとは別ドメインのデータを取得することはできないようになっています。
そのため、Yahoo!JAPAN以外のページで動かしているJavaScriptからは、Yahoo!JAPANのページ取得は出来ないのです。
> ・出来ないのならば他に出来るプログラミング言語は何か。
クライアント(ブラウザ)側ではなく、
PHPもしくはCGI(PerlやRubyなど)を使ってサーバ側でデータ取得処理をすれば実現可能です。
回答ありがとうございます。
クロスドメイン制限と言うのがあるのですね。なるほど、分かりました。
PHPもCGIもやっているのでそっちを試してみようと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHP8でWarning:Undefined varia...
-
VB.NETで DataRow()を利用して...
-
利用者側のMACアドレスを取得し...
-
LAN内接続マシン数及びIP、マシ...
-
javaで週の最初の日(例:月曜日...
-
asp.netでtextboxの値を取得
-
EXCELのリストボックスを選択し...
-
DataGridView 複数選択で行番...
-
エクセルVBAで範囲内での位置取...
-
別フォームのスプレッドの内容...
-
access 和暦をコンボボックスに...
-
LVM_HITTEST
-
ドロップダウンリストの初期表...
-
エクセルVBAで複数選択できるよ...
-
動的SQLのCOUNTのとり方
-
VBAでActiveDirectoryのユーザ...
-
VBからDLL(VC)を呼び出すと戻り...
-
JAVA 入れ子MAPの取得時の書き...
-
VB .netにて現在時刻+1時間後...
-
VBでインストール済みアプリケ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETで DataRow()を利用して...
-
PHP8でWarning:Undefined varia...
-
count(*)で取得した値をJAVAの...
-
ListView 項目の選択/選択解除...
-
VBAでActiveDirectoryのユーザ...
-
VBA:小数点以下の数字を取得で...
-
JSP+Servletでのページングの常識
-
データ数をカウントしたいのですが
-
Flexgridで選択行の列の値を取...
-
利用者側のMACアドレスを取得し...
-
getParameter と getAttribut...
-
like演算子内に変数って使えな...
-
JavaScriptにおいてコンピュー...
-
郵便番号検索APIにてget Elemen...
-
DataGridView 複数選択で行番...
-
URIでのページの移動について
-
Spreadの選択行の取得について
-
指定のURLのタイトルを取得...
-
EXCELのリストボックスを選択し...
-
ListViewで複数選択された項目...
おすすめ情報