http://www.stat.go.jp/info/link/index.htm


例えば上記のような指定したURLから
リンク先URLと表示文字を下記の例のように
テキストまたはエクセルファイルに
抽出してくれるフリーソフトを探しています

テキストの体裁は
それほどこだわりません

(例)
電子政府の総合窓口
http://www.e-gov.go.jp/

総務省統計研修所
http://www.stat.go.jp/training/index.htm

独立行政法人統計センター
http://www.nstac.go.jp/

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2007/02/20 01:18:57
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:hottokei No.1

回答回数178ベストアンサー獲得回数13

ポイント27pt

 ものすごく特定の環境下、かつ手動、連続操作不可ですが、WebブラウザFirefox + メールソフトThunderbirdの組み合わせ(ともにフリーソフト)を使うと、こんなことができます。

http://www.mozilla-japan.org/


1 メールソフトの準備

 メールソフトThunderbirdで「新しいメッセージを作成」として、新規メッセージウィンドウをあらかじめ開いておく。


2 WebブラウザFirefoxで、任意のウェブサイトを表示させる。


3 その状態で、FirefoxのURLが表示されているテキストボックスに注目。

 表示中サイトのURLの文字列の頭にある部分にマウスを当てると

 「このアイコンをドラッグ&ドロップすると、このページのリンクが作成されます。」と、

 表示されますが、その状態で、マウスをドラッグして、

 Thunderbirdのメッセージウィンドウにドロップして下さい。


4 ドロップした先のメッセージウィンドウには、

 Webブラウザに表示されていたURLと

 titleタグの内容が、

 2行書きテキストの状態で出力されています。


 この芸当、Internet Explorer + メモ帳ではできません。

 

id:artdot

Sleipnirを使っています。

ブラウザではなくフリーソフトでtitleタグの内容とURLの抽出ができるものを教えてください

引き続き募集します

2007/02/14 23:16:35
id:hamster009 No.2

回答回数3431ベストアンサー獲得回数50

ポイント27pt

これでできると思います。

URLだけでなく、リンクテキスト(この部分)も抽出するように指定する必要があると思いますが。

http://www015.upp.so-net.ne.jp/basue/software/mojika/

こっちはできるかどうかわからない。

http://vvindows.s17.xrea.com/x/vvine.html

id:llusall No.3

回答回数505ベストアンサー獲得回数61

ポイント31pt

エクセルのマクロで自作してみましたが、いかがでしょうか?

   '標準モジュールに以下のソースを貼り付けます。

   'Sheet1のA列(A1,A2~のセル)にURLを入力します。

   'GetHtmlTitleを実行します。

   'Sheet1のB列(B1,B2~のセル)にタイトルが表示されます。


Option Explicit


Public Sub GetHtmlTitle()

    

    Sheets("Sheet1").Select

    Range("A1").Select

    

    Do Until ActiveCell.Value = ""

        Dim url As String

        Dim html As String

        url = ActiveCell.Value

        html = GetHttpResponse("GET", url, "", "_autodetect")

        ActiveCell.Offset(0, 1).Value = ExtractTitle(html)

        ActiveCell.Offset(1, 0).Activate

    Loop

    

    MsgBox "おしまい"

End Sub



Private Function GetHttpResponse(ByVal methodType, ByVal url, ByVal sendData, ByVal charset)

    Const adTypeBinary = 1

    Const adTypeText = 2

    Const agent As String = "Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1)"

    

    Dim dst

    Set dst = CreateObject("ADODB.Stream")

    With dst

        .Open

        .Type = adTypeBinary


        'HttpRequest

        Dim xmlhttp

        Set xmlhttp = CreateObject("Msxml2.XMLHTTP")

        xmlhttp.Open methodType, url, False

        xmlhttp.SetRequestHeader "User-Agent", agent

        xmlhttp.send (sendData)


        .Write (xmlhttp.responseBody) 'ADODB.Streamオブジェクトへ書き込み

        .Position = 0

        .Type = adTypeText

        .charset = charset

        GetHttpResponse = .ReadText 'Textとして読み出す

        .Close

    End With

    Set dst = Nothing


End Function



Private Function ExtractTitle(ByVal html As String)

    

    '正規表現オブジェクト

    Dim oRe, oMatch, oMatches

  

    '正規表現オブジェクトの参照をセット(新規作成)

    Set oRe = CreateObject("VBScript.RegExp")

    '正規表現オブジェクトのオプション設定

    With oRe

        .Global = True

        .IgnoreCase = True

    End With


    'マッチパターン作成

    oRe.Pattern = "title[\s]*>([^<>/]+)<[\s]*/title"

    '正規表現実行

    Set oMatches = oRe.Execute(html)

    'マッチした全てに対して処理する

    For Each oMatch In oMatches

        Set oMatches = oMatch.SubMatches

        If oMatches.Count = 1 Then

            ExtractTitle = oMatches.Item(0) 'oMatch.Value

            Exit For

        Else

            ExtractTitle = "おかしい・・・"

            Exit For

        End If

   Next


End Function

※参考

Design For Life VBScriptで文字コード変換

一文字に三つ星 [VBA] 正規表現オブジェクトの使い方

※なお、正規表現については良くわかっていません。すみません。

id:artdot

ありがとうございます!

2007/02/20 01:18:32

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません