- ベストアンサー
ホームページの整形/変換方法とは?
- インターネット上のホームページを自分用に整形して印刷する方法について教えてください。
- プログラムやプラットフォーム環境を使って、インターネット上のホームページを直接アクセスして印刷する方法を知りたいです。
- 具体的な手順やプログラム言語のおすすめなど、詳しいアドバイスをお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
先のテキスト解釈は美しくなかったですね。 もし、テーブルタグにIDがあるなら次のように取るのがオシャレかな。 例えば<TABLE ID='A'>の場合 doc.getElementById("A").outerHTML
その他の回答 (2)
- nda23
- ベストアンサー率54% (777/1416)
HTMLテキストから例えばTABLEタグを見つけるには var i = text.search(/<table/i); ※indexOfだと大文字小文字を区別します。searchの方は正規表現に"i"が付いているので、大文字小文字を区別しません。 同様にTABLEタグの終わりを見つけるには var j = text.search(/<\/table/i); ※"/"が正規表現の区切り文字にならないよう\を付けます。 後はsubstringメソッド等で切り分ければよいかと思います。
- nda23
- ベストアンサー率54% (777/1416)
「やりたいこと」がよく分からないのと、実行環境が不明なので何とも言えませんが、あるURLのページを開いて、中身のHTML文を取り出すWindows直下で稼動するプログラムなら、以下のようにすれば可能です。 JavaScriptの例 //InternetExplorerを起動する var ie = new ActiveXObject("InternetExplorer.Application"); //URLを開く ie.Navigate2("http://www.hoge.com/top/page1"); //ドキュメントの取得 var doc; while( ie.ReadyState != 4 ) { WScript.Sleep(1); } doc = ie.Document; //チェック try { var x = doc.mimeType; } catch(e) { //エラーなので、画面を可視にして終了 ie.Visible = true; WScript.Quit(); } //テキストを取得する var txt = doc.body.innerHTML; //IEを終了する ie.Quit(); この後、取り出したテキストを自分用に編集すればよいでしょう。 実際には2ヶ所のURLを拾うので、IE終了前にもう一度、Navigate2メソッド以降を実施して、次のHTMLテキストを取得します。 出来上がりはファイルに保存するか、IEでブランク画面を作り、そこへ書き込んで表示することもできます。
補足
ご回答いただけて嬉しいです。 実行環境について書かなくて失礼しました。 ■Windows環境での実行を考えています。 (あるいは、サーバー上でのCGI(Perl)でも簡単であればどちらでも良いです)。 JavaScriptの例を詳しく書いていただけて大変助かります。 お書きの通り、「URLを開く」ことをやりたかったです。 取得のテキスト(HTML)の中のプログラムで、ガリガリ直接パースする方法でも良いのですが、HTML の中のテーブル・タグを認識する方法があればもっと助かるのですが、XML でないので無理なんでしょうね。 ありがとうございました。
補足
Answer No1 に続き、No2, No3 ととても参考になります。 ありがとうございます!! テーブルタグにIDを付けておくのがお洒落ですね。 今回は既存のURLのHTMLなので、ID が付けられないのでガリガリとsearchとsubstringメソッドで参照するしかないと思っています。 複雑な処理になりそうなので、言語は、JavaScript か Java + GWT (=> JavaScript) にしようか悩んでいます。