人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

あるページのアンカーテキストとURLの一覧を書き出したいです。
その様な事ができるアプリ、ブラウザのアドオン。プログラム。などを教えてください。

例:
http://www.youtube.com/playlist?list=UUjaWxz81Jq_8NcGW0Tt_CNA&feature=plcp
のページの場合
=======================
「ミス・サイゴン」三井太一コメント,http://www.youtube.com/watch?v=-5op3O3BiQ8&list=UUjaWxz81Jq_8NcGW0Tt_CNA&index=1&feature=plpp_video
「ミス・サイゴン」木内健人コメント,http://www.youtube.com/watch?v=VsW8EnYa7y0&list=UUjaWxz81Jq_8NcGW0Tt_CNA&index=2&feature=plpp_video
・・・
=======================
の様にアンカーテキスト,URLという形で書き出したいです。
※「,」じゃなくても構いません。
ページ内の一部のみというのは難しいと思いますので、htmlソース上の最初から最後まで全部書き出す形で問題ありません。
よろしくお願いいたします。

●質問者: くたくた
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● Mook
●67ポイント

期待する部分以外のテキストもあると思いますが、
ページの構成上それもアンカーテキストとして書かれています。

たたき台レベルですが、拡張子を vbs で保存して実行してみてください。

 Set objIE = CreateObject("InternetExplorer.Application")
 objIE.Navigate "http://www.youtube.com/playlist?list=UUjaWxz81Jq_8NcGW0Tt_CNA&feature=plcp"
' objIE.Visible = True
 waitIE objIE
 
 Set ancs = objIE.Document.getElementsByTagName("a")

 For n = 0 To ancs.Length - 1
 res = res & ancs(n).InnerText & "," & ancs(n).Href & vbNewLine
 Next
 objIE.Quit

 CreateObject("Scripting.FileSystemObject").CreateTextFile("anchorList.txt", True, True).Write res
 Set objIE = Nothing

Sub waitIE(objIE)
 Do While objIE.Busy = True Or objIE.readystate <> 4
 WScript.Sleep 100
 Loop
 WScript.Sleep 1000
End Sub

くたくたさんのコメント
ありがとうございます。ちょっとまだ試せてませんので、またご返信いたします。

くたくたさんのコメント
ようやく時間が取れて確認いたしました。 こちらで求めていた事ができました。 ありがとうございます。

2 ● Cherenkov
●67ポイント

ブックマークレットで。

質問文をそのまま受け取り、ページ内の全てのリンクを「アンカーテキスト,URL」のフォーマットで取り出すようにすると以下のようになります。
実行すると右下にテキストエリアの形で結果を表示します。

javascript:(function(){
var links = document.links;
var result = [];
for (var i=0, l=links.length; i<l; i++) {
 var e = links[i];
 result.push(e.textContent+','+e.href);
}
var textarea = document.createElement('textarea');
textarea.value = result.join('\n');
textarea.style.position = 'fixed';
textarea.style.bottom = 0;
textarea.style.right = 0;
textarea.onclick = function(){ this.select()};
document.body.appendChild(textarea);
void(0);
})();


例に出されたyoutubeのページでそのまま適用すると望んだ結果と少し違うと思います。
目的は「動画タイトル、URL」だと思うので以下のようにします。
(youtubeのHTMLを見ればわかりますが素直なサイト構造になっていません。アンカーテキストがspanで囲まれています。)

javascript:(function(){
var titles = document.querySelectorAll('.video-title')
var result = [];
for (var i=0, l=titles.length; i<l; i++) {
 var e = titles[i];
 var href = e.parentNode.parentNode.parentNode.parentNode.href;
 result.push(e.textContent+','+href);
}
var textarea = document.createElement('textarea');
textarea.value = result.join('\n');
textarea.style.position = 'fixed';
textarea.style.bottom = 0;
textarea.style.right = 0;
textarea.onclick = function(){ this.select()};
document.body.appendChild(textarea);
void(0);
})();

今回は簡易的にブックマークレットで回答しましたが、継続的にある目的でファイルに書き出したい、コピペしやすい形で出力したい、など仕様を表明すれば誰かが(作ってくれる|探してくる)かもしれません。
なるべく全てのサイトで(何の目的で)収集したいのか、一定のサイトだけで必要なのか。


くたくたさんのコメント
ありがとうございます。ちょっとまだ試せてませんので、またご返信いたします。

くたくたさんのコメント
ようやく時間が取れて確認いたしました。 こちらも求めていたものになるりました。ありがとうございます。

3 ● 楽1978
●66ポイント ベストアンサー

すべてのタブに開いているページのタイトルとURLを一括コピーするfirefoxのアドオン「Copy Urls Eexpert」というのはどうでしょう?
http://mff2.blog109.fc2.com/blog-entry-806.html
http://tech.lampetty.net/tech/index.php/archives/449


くたくたさんのコメント
ありがとうございます。なかなか時間が取れずに、試せてません。すみません。またご返信いたします。

くたくたさんのコメント
ようやく時間が取れて確認いたしました。 3名の方からお答えいただきましたが、このアドオン型が最も簡易でした。 ありがとうございました。 誠に申し訳ございませんが、皆様すべて要望は叶えていただきましたので、ポイントは平等に配分して、本ご回答はベストアンサーとさせていただきます。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ