• ベストアンサー

""の中身を取得する方法

mitarashiの回答

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.4

過去の回答を引っ張りだしてみました。 1.テキストファイルとして正規表現で取り出す方法 http://okwave.jp/qa/q5651487.html 2.IEのDOMを利用する方法 http://okwave.jp/qa/q8648361.html DOMパターンで、このVisual Basicの回答一覧のページをIE11で表示してやってみました http://okwave.jp/c257.html 'Microsoft Internet Control 'Microsoft HTML Object Library 'に参照設定 Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName As String, _ ByVal lpWindowName As String) As Long Sub getHrefFromOpenPage() Dim ie As InternetExplorer Dim myElements As IHTMLElementCollection Dim myElement As IHTMLElement Dim i As Long i = 1 Set ie = getTopIeTab If ie Is Nothing Then Exit Sub ' 真っ新のシートを表示して実行しないと、泣けます。 Cells.Clear Set myElements = ie.document.getElementsByTagName("a") If myElements.Length = 0 Then Exit Sub For Each myElement In myElements Cells(i, 1).Value = myElement.href i = i + 1 Next myElement 'OKWaveの一覧ページだと、<linkのパターンもあり Set myElements = ie.document.getElementsByTagName("link") If myElements.Length = 0 Then Exit Sub For Each myElement In myElements Cells(i, 1).Value = myElement.href i = i + 1 Next myElement Set ie = Nothing End Sub 'IEの最前面Tabを取得 Function getTopIeTab(Optional matchWord As String) As WebBrowser Dim hWnd As Long Dim ie As WebBrowser Dim targetIe As WebBrowser Const IEClassName As String = "IEFrame" 'IEのClass名 hWnd = FindWindow(IEClassName, vbNullString) If hWnd = 0 Then Exit Function For Each ie In CreateObject("Shell.Application").Windows() If hWnd = ie.hWnd Then ie.StatusBar = True ie.statusText = CStr(hWnd) If ie.statusText = CStr(hWnd) Then If matchWord = "" Then Set getTopIeTab = ie Exit Function Else If InStr(ie.LocationURL, matchWord) > 0 Then Set getTopIeTab = ie Exit Function End If End If End If End If Next ie Set getTopIeTab = Nothing End Function 全部抽出できたか、複雑なソースで把握しきれませんが、ご参考まで。

関連するQ&A

  • URL抽出

    指定したURLのソースから<A HREF="~">タグの"~"部分を抜き出してリスト化するようなURL抽出ツールを作りたいのですが、どのようにプログラムを書けばよいのかわからずに困っています。 わかるかた、回答のほどをよろしくお願いします。

  • ダイナミックHTMLの取得方法

    ブラウザでURLにアクセスすると電力を表示する装置があります。 電力の値だけを取り込んでファイルに保存したいのですが、 HTMLソースを取り込んで見ると、Javascriptで書かれたプログラムが含まれており、 WebサーバーにあるPearlのプログラムに10秒毎にアクセスして値を更新しているようです。 この更新された値をファイルに保存するにはどんな方法がありますか?

  • VBAでWEBページのURL抽出について

    エクセルのVBAにおいてWEBページのURLを抽出するマクロを考えております。 具体的に言うと、下記のようなwebページのタグがある中でhrefで参照しているURLを抽出したいと考えております。 <a class="" href="">あいうえお</a> GetelementByClassNameを使うことで文言の抽出はできるのですが、リンク先の抽出はできないのでしょうか?

  • inet コントロールを用いてHTMLソースのリンクを全て取得するには?

    お世話になります。 Inet.OpenURL("http://www.yahoo.co.jp") でhtmlソースは取得できたのですが <a href>タグの中のurlを全てとりだしてテキストファイルに保存するにはどうすればよいでしょう? いろいろ調べてみたのですがサンプルプログラムがみつからず困っています。詳しい方しえてください。

  • yahooの検索ランキングの取得方法

    yahooの検索ランキングの取得方法 PHPにより、正規表現を使用してyahooの検索ランキングを取得しようと考えています。 googleやbingについては問題なく取得できたのですが、yahooのみうまく取得できません。 以下詳細を記述します 1.file_get_contents()により、 (http://search.yahoo.co.jp/search?ei=UTF-8&fr=top_ga1_sa&x=wrt&p=キーワード) のURLのファイルを取得 2. 1.で取得したファイルから正規表現により<div class="hd">というタグを検索 し、タグからタグまでの文字列を順番に配列に保存 3.取得した配列から指定キーワードを検索し、マッチした配列の順番を取得し、ランクとして表示 取得できないのがyahooだけであることからURLの指定ミスかと思ったのですが、ブラウザで確認すると 表示されています。また、検索するタグの問題かと思い別のものをしてみても問題は解決されませんでした。 どなたかお詳しい方がいらしたら是非ともご教示よろしくお願い致します。

    • ベストアンサー
    • PHP
  • 一つの行にURLが複数ある場合の、URL抽出方法は?

    htmファイルの中から、リンクされたURL情報を抽出するのが今回の目的です。 ご相談したいのは、URL情報が一つの行中に複数ある場合の抽出方法です。 ちなみに「一つの行にある<a href>リンクが一つだけ」の場合ですと、正規表現 <a +href=('|\").*('|\") *> でURLデータを正しく抽出できるところまで来ています。 ですが一つの行にある<a href>リンクが2つ以上あった場合は、最長一致のルールに従って、うまく抽出できません。 具体的に申し上げると、 ケース1:<a href="www.hoge.htm">ほげ</a> <a href="www.hoge.htm"> が抽出できる。 ケース2:<a href="www.hoge.htm">ほげ</a><a href="www.hogehoge.htm">ほげほげ</a> <a href="www.hoge.htm">ほげ</a><a href="www.hogehoge.htm"> が抽出される。(本当は2つを別々に取り出したい)

  • エクセル2003VBA 新規ブックを作成、保存の時に

    いつも勉強させていただいております。 今回、VBAで以下の事をできるのかな?と思い質問させていただきました。 まず、VBAで以下の動作を作成しました。 Aファイル、データーベースCSVファイル Bファイル、VBA記述ファイル 1)Bファイルから、Aファイルを開いて、検索、条件に合うデーター を配列で抽出。 2)新規ブックを追加 3)新規ブックに抽出したデーターを書き出し と言うVBAを作成しました。 で、質問なのですが、新規ブックは保存するか、しないかがその時々に よって任意でするため、VBAで保存の所までは作成していないのですが 、保存する場合、ファイル名に規則性を持たせたいため、ファイル保存 をしたときに表示させる初期ファイル名をBファイルのVBAから変更 させる事はできるのでしょうか? 新規ブックを保存するとき、初期ファイル名は「Book1.xls」となって いると思うのですが、この値を変更することってできますでしょうか? もし可能であれば、ヒントや参考になるHPなど教えていただけないで しょうか。

  • VBAでbmp画像をASCIIデータとして開く

    VBAでbmp画像ファイルをASCIIの配列データとして開き、 青色を全て赤色に変更して、jpegファイルとして保存するようなプログラムを書きたいのですが bmpファイルををASCIIの配列データとして開くためにはどのような記述を使えば良いでしょうか?

  • grepの方法について

    私は現在、500ファイル近いjspファイルもしくはhtmlファイルから hrefのリンクだけを抽出する作業を行っています。 下記コマンドでgrepをかけた場合、 後ろにつながる文字列まで抽出されてしまいます。 grep -i -e "href=" ソースファイルとしては、 <a href="ファイルパス.html" target><img src=""> というように、hrefの後ろにつながって 他のタグが記述されてしまっていますが、 hrefの"ファイルパス.html"のみを抽出したいのです。 どうすればよいでしょうか。 お手数かと思いますが、 宜しくお願いいたします。

  • 複数のファイルからの文字列の抜き出し方について教えて下さい。

    VBAとC言語の基本的なことは分かりますが、VBAは昔少しだけやっただけでほとんど分かりません。 100個くらいあるHtmlファイルから指定した行に書かれている文字列をコピーしてそのHtmlファイルの名前を自動で書き換えてくれるプログラムを作りたいのですが、どのようにすれば良いのでしょうか? 100個も同時にファイルを開くと非常に重くなると思うので、順番に文字列を抽出するようなものの方が良いと思うのですが、 何から始めて良いのか分かりません。 VBの基本書を頭から順番に読むというのはいま時間がないので、基本的な手順だけ教えて頂けないでしょうか? よろしくお願い致します。