2017-11-27 10 views
0

ウェブページのテーブルからデータを取得するのに問題はありませんが、2つの問題にぶつかりました。ウェブデータスクラップhtmlテーブルExcel VBA

ウェブページでは、1ページの表データのみが表示され、下部には2,3,3ページ目をクリックできます。 Ctrl + を使用してhtmlコードを見ると、すべての情報が読み込まれ、tr行としてきちんと整理されていることがわかります。

私はie.documentは私がChromeでUはCtrl +にを使用して見ることができるものとして、すべての要素を格納できると仮定します。 getelementByTagName("tr")を使ってtr innertextを取得しようとすると、vbaはテーブルの他のページにあるはずのすべてのtr要素をスキップしました。私がうまく説明できない場合は私にご容赦ください。機密情報が含まれている可能性があるため、ここにリンクとHTMLコードを貼り付けることができませんでした。誰かがこれまでに同様の問題にぶつかったのだろうかと思います。

ieDoc = ieApp.Document 

For Each HTMLRow In ieDoc.getElementsByTagName("tr") 

Debug.print HTMLRow.innertext 
+0

どのように機能するかの大きな一例与えるかもしれない過去に同様の質問質問://のstackoverflowを。 –

答えて

0

私はまだコメントできないので、少なくとも以下のことが役立つことを願っています。

は、要素の全体のセットを取得するには、そのように変数を定義する必要がありますすることを確認し、上記を使用するためには

Set variableName = ie.document.getElementsByTagName("tr") 

Dim variableName as IHTMLElementCollection 

コレクションを返すには[ツール]> [参照]の下に、参照Microsoftインターネットコントロールを追加します。

私はあなたに、これはあなたが[リンク](httpsを参照ここで質問を投稿する前に、ドキュメントの中に見ている必要がありますExcel VBA getElementsByTagName

+0

ありがとう、私はこれを試して、コレクションをループし、必要なtr要素を返しませんでした。これは2ページ目またはそれ以降のWebページ上にあります。しかし、私はページのソースコードから見ることができるように、すべての要素が読み込まれます。 – John

+0

ページ2にペグオフするURLがありますか?それ以外の場合は、「次のページ」ボタンがある場合は、そのボタンを押すことができます。最初の入力に応じてページ数が変更された場合は、LocationURLメソッドを使用して、正しいページにいることを確認できます。あなたが答えを見つけたら、投稿できますか?私はこれらのツールをたくさん使い、さまざまな例が本当に助けになります。 –

+0

ページに別個のURLがありません.NEXTを押すと、新しいURLに直接向かうことはありません。私の推測では、ie.documentは、画面が表示されているときにtr行だけを記録し、ページの完全なソースコードに含まれるすべてのtr行は記録しません。 – John

関連する問題