ハイパーリンク先のテキストデータを取り込みたい | |
---|---|
[195262] ハイパーリンク先のテキストデータを取り込みたい- ■親トピック/記事引用/メール受信=OFF■ □投稿者/ みつくに -(2022/09/14(06:06)) □U R L/ 下のマクロは自力ではできないので関連で検索し懸命に探してきたサイトにあったマクロで勝手に引用してきてすいません 指定URLが表示されブラウザの読み込みが完了後、全てのリンクに対し処理を行い、セルA1に「タイトル」、セルB列に「リンクが設定された文字列」、セルC列に「リンクのURL」を表示します。というものです これに今回新たにマクロ記述を付け足していただきたいのです セルC列に「リンクのURL」を表示したら、 @そのURLのアドレスのリンク先のページを全部そのまま丸ごとテキストコピーして同じC列か又は隣のD列にコピペしてください AテキストコピーされたC列かD列の文字列を検索置換処理にて 1回目は「*)は、」アスタリスクはワイルドカードで置換後の文字列は空欄 2回目は「。*」アスタリスクはワイルドカードで置換後の文字列は空欄 テキストをコピペされた長い本文を置換で文字数を減少させて整理します Sub Sample1() Dim ObjBrw As Object Dim temp As Object Dim i As Long i = 1 'Internet Explorerを起動する Set ObjBrw = CreateObject("InternetExplorer.Application") With ObjBrw '指定URLに移動 .Navigate "エイチティティピーエス://ja.wikipedia.org/wiki/Category:2022%E5%B9%B4%E6%B2%A1" 'Internet Explorerを表示 .Visible = True 'Busyプロパティ:True=読み込み中 False=読み込み完了 'ReadyStateプロパティ: ' 0:デフォルト値/未完了の状態 ' 1:ロード中 ' 2:ロード完了/操作不可状態 ' 3:操作可能状態/読み込み状態は未完了 ' 4:全データ読み込み完了 Do While .Busy = True Or .ReadyState <> 4 Loop '表示URLがHTMLDocumentであることの確認 If TypeName(.Document) = "HTMLDocument" Then 'セルA1に「タイトル」を入力 Cells(i, 1).Value = .Document.Title i = i + 1 '全リンクに対して処理を実施 For Each temp In .Document.Links If temp.innerText <> "" Then 'リンク設定されている文字列をセルB列に入力 Cells(i, 2).Value = temp.innerText 'リンクのURLをセルC列に入力 Cells(i, 3).Value = temp.href i = i + 1 End If Next End If End With End Sub このままブラウザIEは利用期限(エッジに自動で飛ばされる?)すると思いますが駄目になった場合に備えてエッジ用に書き換えられるとベストです この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 ++++++++++++++++++++ OS ⇒OTHER Version⇒OTHER ++++++++++++++++++++ |
[195263] Re[1]: ハイパーリンク先のテキストデータを取り込みたい- ■記事引用/メール受信=OFF■ □投稿者/ MK -(2022/09/14(17:18)) □U R L/ >1そのURLのアドレスのリンク先のページを全部そのまま丸ごとテキストコピーして同じC列か又は隣のD列にコピペしてください ↓が参考になるかもしれません。 ht tps://www.octoparse.jp/blog/scraping-data-from-website-to-excel/# webページによってデータの持ち方が違いますし、IEモードは試したことがないので 未検証ということになります。 |
[195267] Re[2]: ハイパーリンク先のテキストデータを取り込みたい- ■ / 記事引用/メール受信=OFF■ □投稿者/ みつくに -(2022/09/20(21:56)) □U R L/ これから先は諦めますのでご了承ください MK様、誠にありがとうございました。 |
このトピックに書きこむ |
---|