今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で質問しましょう!
似たような質問が見つかりました
- オープンソース IT用語、ソースとオブジェクト、改変と翻訳と翻案の違いなど どのようにりかいすればよいのですか 1 2022/09/09 10:02
- その他(プログラミング・Web制作) JavaScriptのコンソールのショートカットが動きません https://laptopreneu 1 2023/04/25 11:32
- JavaScript ソースコードは下の共有コードサイト「張り紙」にあります。 入力フォームの javascript で 1 2022/05/11 11:01
- C言語・C++・C# Cのコンパイルでコメントアウトをそのままオブジェクトに保持したい 7 2023/08/01 22:22
- JavaScript 読み込んだQRコードをフォームに受け渡したい 1 2023/05/18 11:18
- JavaScript Javascriptで出来ること 1 2022/05/16 20:19
- JavaScript javaScriptで画面に値を入れるには 1 2022/08/14 12:27
- Instagram HTML5の廃止とJavaScript 2 2022/04/13 21:05
- JavaScript HTMLでJavaScriptを使用してプログラムを作ります。 入力されたパスワードを取得して、パス 2 2022/10/18 01:05
- システム 古いWEBシステム。もう追加プログラムは作れない? それともできる? 6 2022/06/08 13:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでActiveDirectoryのユーザ...
-
ListView 項目の選択/選択解除...
-
VB.NETで DataRow()を利用して...
-
count(*)で取得した値をJAVAの...
-
VBA:小数点以下の数字を取得で...
-
like演算子内に変数って使えな...
-
JavaScriptでWindowsログオンID...
-
getParameter と getAttribut...
-
データ数をカウントしたいのですが
-
エクセルVBAで複数選択できるよ...
-
利用者側のMACアドレスを取得し...
-
ASP(vbscript)におけるクライア...
-
エクセルVBA リストボック...
-
jQueryによるajaxで、CGIからの...
-
ActiveWorkbook.Path取得できない
-
JSP+Servletでのページングの常識
-
「Excel VBA」 Webクエリ マク...
-
Excel VBA でログインしてい...
-
コンボボックス表示文字列を取...
-
C言語におけるコンピュータ名・...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでActiveDirectoryのユーザ...
-
VB.NETで DataRow()を利用して...
-
ListView 項目の選択/選択解除...
-
VBA:小数点以下の数字を取得で...
-
count(*)で取得した値をJAVAの...
-
データ数をカウントしたいのですが
-
like演算子内に変数って使えな...
-
ListViewで複数選択された項目...
-
Flexgridで選択行の列の値を取...
-
エクセルVBAで複数選択できるよ...
-
JavaScriptでWindowsログオンID...
-
利用者側のMACアドレスを取得し...
-
郵便番号検索APIにてget Elemen...
-
COMポート 名前を取得する方法
-
コンボボックス表示文字列を取...
-
VBA Shapesの座標からセル位置...
-
Spreadの選択行の取得について
-
VBScriptで数値にコンマを付け...
-
C言語におけるコンピュータ名・...
-
Excel VBA でログインしてい...
おすすめ情報