user3053688
user3053688

Reputation: 1

I can not get Web site text using VBA IE

I used the VBA below and monitored the variable IE.document. When the url is IE.navigate="http://www.mixi.jp", I could get all the web text using IE.document.all.

But in other sites like "http://www.yahoo.co.jp" , I could not get Web text. Why is that?

Sub Main()

    Set IE = CreateObject("InternetExplorer.Application")
    IE.Visible = True
    IE.navigate "http://www.yahoo.co.jp"

    Do While IE.Busy Or IE.readyState < 4
        DoEvents

    Loop

End Sub

Upvotes: 0

Views: 163

Answers (1)

David Zemens
David Zemens

Reputation: 53623

Because this particular website's IE.document is nothing:

enter image description here

This seems to be the case with dynamically served sites, there are some suggestions here which I use below.

Although I am not sure you will be able to easily "get all of the text", you can certainly still iterate over the elements you're interested in extracting:

Sub Main()

Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.navigate "http://www.yahoo.co.jp"

Do While ie.Busy Or ie.readyState < 4
    DoEvents

Loop

'Create a collection of DIV elements for example
Dim myElements
DIm ele
Set myElements = ie.Document.Body.GetElementsByTagName("DIV")

'Then you can iterate over the DIV elements/etc., modify as needed.
For each ele in myElements
    Debug.Print ele.InnerText
Next

End Sub

Upvotes: 1

Related Questions