- ベストアンサー
ページソースからのURL抽出
VBでページソースにあるURLを全て抽出したいと考えています。 どのようにすれば良いか教えてください。 サンプルコードがあると助かります。 具体的には、以下の通り。 (1)ウェブページのソースを読み込む (2)読み込んだソースを1行ずつ探索し<a href="****">の****の部分を全て読み込んでいく (3)ExcelのURL欄に順に入力していく (4)URL一覧の出来上がり よろしくお願いします。
- mickmick2
- お礼率10% (19/190)
- Visual Basic
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 VB or VB(A) ? 開発環境が不明ですよ。 質問の内容ならたいしてソースは変わらないですけど、ちゃんと 明記した方が良いですよ。Excel に出力するなら VBA でって前提 で回答します。 > (1)ウェブページのソースを読み込む とありますが、リンク抽出が目的であるならソースを読み込んで テキスト解析するより、DOM を利用した方が簡単です。 DOM を取得する方法はいくつかありますけど、一番簡単な IE を 使った例。 Sub sample() Dim ie As Object ' InternetExplorer Dim dom As Object ' HTMLDocument Dim anc As Object ' HTMLAnchorElement Dim sAddr As String Const IE_READYSTATE_COMPLETE As Long = 4& Set ie = CreateObject("InternetExplorer.Application") ie.Visible = True ie.navigate "ここに目的のURL" While ie.Busy Or ie.readyState <> IE_READYSTATE_COMPLETE DoEvents Wend Set dom = ie.document For Each anc In dom.links ' // or dom.getElementsByTagName("a") sAddr = anc.href ' // javascript:void(0) 等の除去 If InStr(LCase$(sAddr), "javascript") = 0 Then ' // 出力(仮にイミディエイトウインドウ) Debug.Print sAddr End If Next Set dom = Nothing Set ie = Nothing End Sub 要は、For Each ループでアンカー要素を回せばよいわけで、DOM の取得が できるのであれば、その方法は何でもよいです。 丸投げというわけではないのでしょうが、結果としてそのようになって しまうのは本意ではありませんので、端折った回答にしておきます。 Excel のセルへ書き出す方法は、ご自分で考えてください。 最後に、IE 操作と DOM オブジェクトについて参考となる定番ページを 紹介しておきます。 [三流君VBAでIE操作] http://www.ken3.org/cgi-bin/group/vba_ie.asp
関連するQ&A
- VBAでWEBページのURL抽出について
エクセルのVBAにおいてWEBページのURLを抽出するマクロを考えております。 具体的に言うと、下記のようなwebページのタグがある中でhrefで参照しているURLを抽出したいと考えております。 <a class="" href="">あいうえお</a> GetelementByClassNameを使うことで文言の抽出はできるのですが、リンク先の抽出はできないのでしょうか?
- 締切済み
- Excel(エクセル)
- HPのソースのURL部分だけを抽出したい
下記のようなソースがあるとします。 <TD><A href="http://www.webconnection.jp/micro/slink/slink.cgi" target=_blank>Web Republick</A></TD> <TD><A href="http://www.webconnection.jp/micro/slink/slink.cgi?mode=form" この中で”で囲まれているURL部分だけを抽出して一覧を作るにはどうしたらいいでしょうか? ワードやエクセルに貼り付けてなんとかしようとしたのですが、うまくゆきません。 URLがたくさんあり、手動でコピペするには手間が多すぎます。 よい方法がありましたら、教えてください。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- WEBページ内のURLを抽出するJavaScript
現在見ているホームページのURLを全て、 もしくは画像だけ等の条件付で抽出できる JavaScriptのサンプルスクリプトを教えてください。 ページのアドレスを入力するだけでOKなら 最高だと思うんですけど、その場合、 Perl等のサーバー側で動くプログラムが 必要だと思うんです。 希望としては、パソコン側で実行したいんです。 ソースプログラムをコピー&ペーストして、 実行ボタンを押すとリンクURLだけ抽出されて 表示されるようなスクリプトはありませんか。 よろしくお願いします。
- 締切済み
- JavaScript
- エクセルVBAにてURLの抽出
エクセルVBAのマクロを用いてテキスト(ソースコード)よりURLを取得したいと考えています。 <a href="**"> 左記の「**」を取得し、エクセル上に 一覧として出力するものを想定しています。 なお、ソース上にhrefのコードは複数存在するので、 それら全てを出力したいのです。 以下が出力希望例になります。 <a href="http://www.test.co.jp"> <script type="text/javascript"> <a href="http://www.test2.co.jp"> 出力結果 http://www.test.co.jp http://www.test2.co.jp 諸事情があり、テキストを読み込んでエクセル上に取得する形式でお願いしたいです。 すみませんが、よろしくお願いします。
- ベストアンサー
- Visual Basic
- PHPでHTMLソースから特定のURLを抽出したい
PHPで外部サイトのHTMLソース内の特定のURLを取得するにはどうすればいいでしょうか? 具体的には楽天市場の個別商品ページのHTMLソースにあるレビューページのURLを抽出したいと思っています。 ttp://item.rakuten.co.jp/asagao/332/のHTMLソースから レビューページのURLのttp://review.rakuten.co.jp/item/1/229861_10000050/1.1/を取得するようなプログラムを作りたいと思っています。 自力で頑張ってみたもののPHP初心者のため、preg_matchや正規表現でお手上げ状態になってしましました。 プログラムのソースコードを教えていただけると助かります。 ご回答よろしくお願いします。
- ベストアンサー
- 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つを別々に取り出したい)
- ベストアンサー
- その他(プログラミング・開発)
- QRコードからURLの抽出
そのQRコードはあるWebページにジャンプさせるものなのですが、私が持っている携帯はQRコードに対応していないのでその機能が使えません。 そこで、QRコードからジャンプ先のURLを知りたいのですが、QRコードからURLを抽出することはできないものでしょうか? もし、できるのであれば、是非その方法を教えてください。ご教授宜しくお願いします。
- ベストアンサー
- その他(スマートフォン・携帯・タブレット)
- フレームで開いたページのリンク抽出
インラインフレーム、フレーム、新規ウィンドウなどでウェブページを開いてリンクを抽出するにはどうしたらよいのでしょうか? 試した方法は、親ファイルでiframe名.location.href="目的のURL"としインラインフレームでウェブページを開いた後、 http://blog.bulknews.net/mt/archives/001099.htmlのブックマークレットをiframe名.location.href="ブックマークレット"でリンク抽出しようとしたのですが、ブラウザはブックマークレットとして認識してくれず、「ページが表示できません」となってしまいます。 ただ、ウェブページではなくローカルに置いたファイルを開いたのち、同じくiframe名.location.href="ブックマークレット"すると上手く動作してくれるのですが…… ウェブページでもブックマークレットを動作させる方法、あるいは親ファイル内のjavascriptでブックマークレットに相当する動作をするjavascriptの書くなどがあればぜひ教えてください。
- 締切済み
- JavaScript
お礼
ご指摘等々含めてありがとうございました。早速試してみたいと思います。