初めての投稿、私は本当に答えが明らかな場合は謝罪します。 VBAを使用して複数のハイパーリンクからテキストをスクラップする方法
私はいくつかの検索をした、そして、 this postを通って、いくつかのグーグルは、Excel用このVBAマクロを組み立てるために管理:Sub GetFeats()
Dim SourceCell As Range
Dim FeatText As String
Dim TargetCell As Range
Dim appIE As Object
Set appIE = CreateObject("internetexplorer.application")
Visible = True
For Each SourceCell In Sheets("Sheet2").Range("A2:A3200")
With appIE
.Navigate SourceCell
.Visible = True
End With
Do While appIE.Busy
DoEvents
Loop
FeatText = appIE.document.getElementById("content")
For Each TargetCell In Sheets("Sheet2").Range("B2:B3200")
b2 = TargetCell
Next TargetCell
Next SourceCell
End Sub
は今、まあ、ほとんど動作しているようです。私は、Internet ExplorerがA2:A3200の範囲を走っているのを見て、各リンクを連続して開くことができます。それは空のセルになると失敗するので、セルが空の場合はセルをスキップする方法を検索する必要がありますが、自分でそれを管理できると思います。
問題は、ウェブページの「コンテンツ」が見つからないことです。 div id
が機能的に同じでない場合は、tr id
(私がソースとした元の投稿に使用されています)と思っています。 hereは、文脈のために「[オブジェクトHTMLDivElement]」
をB3200が、今それはちょうど貼り付け:私はVBAが正しいコンテンツを見つけるために得ることができれば、それは範囲B2に、適切にそれを貼り付けます、を考えるA2:A3200から引き出されているリンクのサンプル。
ありがとうございました。
種類。理想的には、Webページのテキストの特定の部分だけをさまざまな列(B、C、Dなど)にコピーしたいと思いますが、 (私のために)単純にすべてのテキストのダンプを取得してから、Wordに3200行すべてをコピーしてそこにフォーマットして、小麦を籾殻から分離することができます。 私はHTMLではなく、ウェブサイトの読みやすいテキストだけを必要とします。 – rdplanglois
OK、それは私が望むテキストを引っ張っていないことを除いて、VBAが素晴らしい作品です。今、私はちょうど**すべて**をページから入手しています。それはうまくいく、私はそれで動作することができます。とにかくページ内から特定のヘッダーだけを取得する...? – rdplanglois
いくつかのURLを投稿してください。[OK]をクリックします。私はURLの間に共通点があると思います。完全に異なるURLが3200件ある場合、これは不可能です。 Webサイトは一般的にはカスタム設計されており、通常はそれぞれ異なるものがあります。 – ryguy72