Re: Data from web site
- From: "spaceman33" <bargarian@xxxxxxxxx>
- Date: Sun, 3 Jul 2005 19:32:15 +0000 (UTC)
Thanks Tim, don't think I need to try that now :)
I had another look this evening and found out that the refreshed page
details weren't being passed to my variable.
I entered my login details, pressed the submit button, and then when I got
the web page text, it was still on the old page, so I just repeated the
procedure again because login lasts 30 minutes, so it goes straight to the
passworded page with the details on I want to extract, and did it that way.
It means openening IE twice to do the job, but at least it works now.
Thanks.
Just had a moment of inspiration and produced a work around.
"Tim Williams" <saxifrax@pacbell*dot*net> wrote in message
news:ehQxvSAgFHA.340@xxxxxxxxxxxxxxxxxxxxxxx
>
>
> That's a table, not a frame.
>
> Try replacing
>
> retVal = o.Document.body.innerText
>
> with
>
> retVal =
> o.Document.getElementById("member-jacket").rows[0].cells[0].innerText
>
> (watch out for wrapping)
>
> This will get you the first cell in the table - adjust to (eg.)
> "rows[3].cells[4]" to get the text you want.
>
> That should get you closer
> Tim.
>
> "spaceman33" <bargarian@xxxxxxxxx> wrote in message
> news:da89nk$247$1@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>>
>> Frames, that's the word I was looking for.
>>
>> I think I need to select the frame with the ID <table id="member-jacket"
>> class="info info-member" cellspacing="1">, but don't know how to select
>> it to get the text from there.
>>
>> I'm not clued up on HTML, but hopefully that is the name of the frame I
>> want to grab info from?
>>
>> "Tim Williams" <saxifrax@pacbell*dot*net> wrote in message
>> news:%23IWLST1fFHA.3436@xxxxxxxxxxxxxxxxxxxxxxx
>>>
>>> If your browser already has the page loaded then you can skip all of the
>>> navigate and login code.
>>> Try the function below (GetPageText) - it will return the text from a
>>> page loaded in IE which matches the passed URL parameter. This assumes
>>> that the page does not use frames - if it does then you'll have to
>>> include a reference to which frame you want.
>>>
>>> You can then parse out the info from the returned string. I can't help
>>> much with that, not having seem the text you need to separate.
>>>
>>> Tim.
>>>
>>>
>>>
>>> Sub tester()
>>> MsgBox GetPageText("http://login.americasarmy.com/views/login.php")
>>> End Sub
>>>
>>> 'Find an IE window with matching location and get the Text from
>>> ' the loaded page. Assumes no frames.
>>> Function GetPageText(sAddress As String) As String
>>>
>>> Dim objShell As Object, objShellWindows As Object, o As Object
>>> Dim retVal As String, sURL As String
>>>
>>>
>>> retVal = ""
>>> Set objShell = CreateObject("Shell.Application")
>>> Set objShellWindows = objShell.Windows
>>>
>>> 'see if IE is already open
>>> For Each o In objShellWindows
>>> sURL = ""
>>> On Error Resume Next
>>> sURL = o.Document.Location
>>> On Error GoTo 0
>>> If sURL <> "" Then
>>> If sURL Like sAddress & "*" Then
>>> retVal = o.Document.body.innerText
>>> Exit For
>>> End If
>>> End If
>>> Next o
>>>
>>> GetPageText = retVal
>>> End Function
>>>
>>>
>>>
>>>
>>>
>>> "spaceman33" <bargarian@xxxxxxxxx> wrote in message
>>> news:da6ocr$dk4$1@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>>>>
>>>> Yep, posted it in the original thread:
>>>>
>>>> Thanks for the info.
>>>>
>>>> I found the code I had previously used:
>>>> =========================================================
>>>> Sub Button4_Click()
>>>> 'AA
>>>> a = ""
>>>> url = "http://login.americasarmy.com/views/login.php"
>>>> 'Const url As String = link
>>>> Dim IE As Object
>>>> Set IE = CreateObject("internetexplorer.application")
>>>> With IE
>>>> .Visible = True
>>>> .navigate url
>>>> Do While .ReadyState <> 4: Loop
>>>> a = .document.body.innertext
>>>> End With
>>>> 'enter login details
>>>> IE.document.all("username").Value = "username"
>>>> IE.document.all("password").Value = "password"
>>>> With IE.document.Forms(0)
>>>> .submit.Click
>>>> End With
>>>> 'get score
>>>>
>>>> #####THIS NEXT PART IS WHERE I WANT TO DO THE SEARCHING FOR THE STRING
>>>> Experience Required for Next Level#####
>>>>
>>>> Position = InStr(1, a, "Experience Required for Next Level",
>>>> vbTextCompare)
>>>> honour = ""
>>>> For z = 13 To 25
>>>> If Asc(Mid$(a, Position + z, 1)) = 13 Then z = 25: GoTo 599
>>>> honour = honour & Mid$(a, Position + z, 1)
>>>> 599
>>>> Next z
>>>> MsgBox honour
>>>> Set IE = Nothing
>>>> End Sub
>>>> ==========================================================
>>>>
>>>> How would I put that code into the above? I am already at the web site
>>>> page I want to grab the information from, I just need to get the
>>>> information from a section of the web page (different table or whatever
>>>> it is).
>>>>
>>>> Thanks.
>>>>
>>>> "Tim Williams" <saxifrax@pacbell*dot*net> wrote in message
>>>> news:OqJfkUzfFHA.3692@xxxxxxxxxxxxxxxxxxxxxxx
>>>>>
>>>>> why not post the url?
>>>>>
>>>>> Tim
>>>>>
>>>>>
>>>>> "spaceman33" <bargarian@xxxxxxxxx> wrote in message
>>>>> news:da5r97$b3q$1@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>>>>> I am trying to get some data from a web site.
>>>>>
>>>>> Because the data is part of a table on a web site, not the main table,
>>>>> I think that's why I can't find it.
>>>>>
>>>>> Code similar to what I am trying is:
>>>>>
>>>>> a = ""
>>>>> url = link
>>>>> Dim IE As Object
>>>>> 'this part open explorer and navigates to the web site I want
>>>>> Set IE = CreateObject("internetexplorer.application")
>>>>> With IE
>>>>> .Visible = False
>>>>> .navigate url
>>>>> Do While .ReadyState <> 4: Loop
>>>>> a = .document.body.innertext
>>>>> End With
>>>>> 'I would then search for the text preceeding the value I am looking
>>>>> for
>>>>> Position = InStr(1, a, "Enemy Kills:", vbTextCompare)
>>>>>
>>>>>
>>>>> Like I said, I think because the text is in another section of the web
>>>>> page it doesn't find it.
>>>>>
>>>>> Some data I found from the Source of the web site is:
>>>>>
>>>>> <table id="member-jacket" class="info info-member" cellspacing="1">
>>>>>
>>>>> I am hoping this will help find the solution.
>>>>>
>>>>> Thanks in advance for any thoughts.
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>
>
>
>
.
- References:
- Data from web site
- From: spaceman33
- Re: Data from web site
- From: Tim Williams
- Re: Data from web site
- From: spaceman33
- Re: Data from web site
- From: Tim Williams
- Re: Data from web site
- From: spaceman33
- Re: Data from web site
- From: Tim Williams
- Data from web site
- Prev by Date: Re: Data from web site
- Next by Date: Re: MOVE Work*** to another workbook ?
- Previous by thread: Re: Data from web site
- Next by thread: Workshoot Menu Bar Hijacked!!
- Index(es):
Loading