そのURLごとのページタイトルを、自動取得してくれるアプリケーションを探しています。
アプリケーションは、Windows用でもMac用でも、あるいはWeb上で使えるアプリでも何でも可です。
http://stylet.sakura.ne.jp/gettitle.html
上記のページの上の段にurl,url,……と入力して実行ボタンを押下すると、下の段にurl,title\nurl,title\n……の形式で出力されます。
html
<html> <head> <script type="text/javascript" src="prototype-1.4.0.js"></script> <script type="text/javascript"> var ary = new Array(); function exe(){ $("dst").value = ""; ary = $("src").value.split(","); getTitle(); } function getTitle(){ if( ary.length == 0 ){ return; } var url = ary[0]; ary = ary.slice(1); new Ajax.Request( "gettitle.php", { method : "get", parameters : "url=" + url, onSuccess : function( res ){ $("dst").value += res.responseText + "\n"; getTitle(); }, onFailure : function( res ){ alert( res.toSource() ); }, onException : function( res, ex ){ alert( ex + " " + ex.message ); } }); } </script> </head> <body> <input id="src" type="text" style="width:90%;height:45%;"> <button onclick="exe();">実行</button> <br> <textarea id="dst" style="width:90%;height:45%;"></textarea> </body>
php
<? if( isset($_GET[url]) ){ echo $_GET[url].",".getTitle(urldecode($_GET[url])); } function getTitle( $url ){ if( ereg("^http://",$url) ){ $text = file_get_contents( $url ); if( eregi("<title>.+</title>", $text, $regs) ){ $title = eregi_replace("<.?title>", "", $regs[0]); $title = mb_convert_encoding($title, 'UTF-8', 'auto'); return $title; } } return ""; } ?>
例えばURLだけを抜き出しエディタなどで前後を [ と :title] で挟んで、(下記例参照)
http://q.hatena.ne.jp/1152753956 ↓ [http://q.hatena.ne.jp/1152753956:title] ※秀丸エディタなど正規表現で置換が出来るエディタであれば、 ¥n を :title]¥n[ に置換すると一気に処理できます。 (¥は半角で入力してください。)
これを「はてなダイアリー」で「日記を書く」として、[編集]タブに貼り付け、
[プレビュー]タブで見ればタイトルに変換してくれます。
(500個一気にやると負担を掛けるので50個程度に分割した方が良さそう...)
ただ100文字を超えると省略されてしまうのと、文字化けする事があるんですよね...。
この程度の処理であればWSHのVBSで(私が)スクリプトを組む事も出来るかと思いますが、
CSVファイルにはURL以外の情報も含まれますか?含まれる場合、何列データがあり、
何列目にURLが書かれていますか?また、URLだけにする事は可能ですか?(その方が処理が楽です)
ご回答ありがとうございます。
CSVファイルにはURL以外の情報は含まれてますが、URLだけにすることも可能です。
PHPだとこんな感じでしょうか。
2行目のパスは適当に置き換えてください。
この例では、url.txtは1行に1つのURLが書かれているテキストファイルです。
<?php if (!($fp = fopen('/full/path/to/url.txt', 'r'))) { print 'File could not be opened.'; die; } while (!feof($fp)) { $line = rtrim(fgets($fp, 32000)); if (!($fp2 = fopen($line, 'r'))) { print 'URL could not be opened.'; die; } while (!feof($fp2)) { $line2 = fgets($fp2, 32000); if (ereg('<title>', $line2)) { list($dummy, $title, $dummy) = split('<title>|</title>', $line2); $title = htmlspecialchars(mb_convert_encoding($title, 'UTF-8', 'UTF-8,EUC-JP,SJIS')); print $line.','.$title.'<br/>'; } } fclose($fp2); } fclose($fp); ?>
ダミーURL: http://www.php.net/
ありがとうございます。
でもごめんなさい。これをどうすればいいかよくわかりません。プログラムの知識は乏しいので・・・
http://www.forest.impress.co.jp/lib/inet/websupt/webpilot/wwwc.h...
Windows用のソフトです。
URLを改行で区切ったテキストに変換して、このソフトに貼り付け、アイテムを全て選択した状態で右クリックの[タイトル取得]で出来ます。フォルダごとデスクトップなどにD&Dすればショートカットとして保存できます。
タイトル取得までは出来たのですが、これをさらに書き出したりする方法が見つかりませんでした。
何か方法はありますか?
http://stylet.sakura.ne.jp/gettitle.html
上記のページの上の段にurl,url,……と入力して実行ボタンを押下すると、下の段にurl,title\nurl,title\n……の形式で出力されます。
html
<html> <head> <script type="text/javascript" src="prototype-1.4.0.js"></script> <script type="text/javascript"> var ary = new Array(); function exe(){ $("dst").value = ""; ary = $("src").value.split(","); getTitle(); } function getTitle(){ if( ary.length == 0 ){ return; } var url = ary[0]; ary = ary.slice(1); new Ajax.Request( "gettitle.php", { method : "get", parameters : "url=" + url, onSuccess : function( res ){ $("dst").value += res.responseText + "\n"; getTitle(); }, onFailure : function( res ){ alert( res.toSource() ); }, onException : function( res, ex ){ alert( ex + " " + ex.message ); } }); } </script> </head> <body> <input id="src" type="text" style="width:90%;height:45%;"> <button onclick="exe();">実行</button> <br> <textarea id="dst" style="width:90%;height:45%;"></textarea> </body>
php
<? if( isset($_GET[url]) ){ echo $_GET[url].",".getTitle(urldecode($_GET[url])); } function getTitle( $url ){ if( ereg("^http://",$url) ){ $text = file_get_contents( $url ); if( eregi("<title>.+</title>", $text, $regs) ){ $title = eregi_replace("<.?title>", "", $regs[0]); $title = mb_convert_encoding($title, 'UTF-8', 'auto'); return $title; } } return ""; } ?>
ありがとうございます。
求めていたものです!!!
Webアプリケーションの意味を取り違えていたようです。PHPのプログラムを実行できる環境があれば、上記のソースをコピーしたgettitle.phpなどを作成し、URL一覧のテキストファイルとともに亜サーバーにアップロードしgettitle.phpを実行するだけなのですが・・・。
いずれにせよ、k_goriさんの回答によるとWWWCのような定番ソフトにも機能はあるようですね。そちらの方が簡単だと思います。
ダミーURL: http://q.hatena.ne.jp/1152753956
ありがとうございます。
先ほどの方のもので、解決いたしましたが、もう一度皆様のご回答を見直して、使いやすそうなものを利用させていただきます。
gong1971様はVBスクリプトをもしかしたら書いていただいているかもしれませんが、大変申し訳ないですが、ここで質問を終了したいと思います。
本当に皆様ありがとうございました。
ありがとうございます。
求めていたものです!!!