Retrieving HTML source from a URL

I've tried the INet control, the WebBrowser control, and the MSHTML library without success.  I simply want to pass in a URL to something and get back the entire HTML source which I can then parse through for my own purposes.  Surely there must be an easy way to do this!
rmayerAsked:
Who is Participating?
 
Richie_SimonettiConnect With a Mentor IT OperationsCommented:
Inet control:

dim sContents as string

sContents=inet1.openurl("http://wwww.domain.com/index.html",icString)



Webbrowser controlary:
As tim close suggested:
on Webbrowser Document_complete event:

if (pdisp is webbrowser1.object) then
   sContents=webbrowser1.document.documentelement.innerhtml
end if

I use documentelement since it returns all the contents (title,head, script and so on) while body only returns Body contents.

Hope it helps
0
 
TimCotteeHead of Software ServicesCommented:
Use

WebBrowser1.Document.Body.InnerHTML

This should return the HTML source for the URL when the document_complete event is fired.
0
 
rmayerAuthor Commented:
But, what method do I use to cause DocumentComplete to fire?  I assume you are using Navigate, but it only works if I make the WebBrowser control Visible.  I don't want it to be visible because I'm only interested in capturing the HTML source.  Any ideas?
0
Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
RichWCommented:
If you're asking how to make sure the readystate is complete:

Do While WebBrowser1.ReadyState < 4 '= READYSTATE_COMPLETE
    DoEvents
Loop

RichW
0
 
rmayerAuthor Commented:
But, what method do I use to cause DocumentComplete to fire?  I assume you are using Navigate, but it only works if I make the WebBrowser control Visible.  I don't want it to be visible because I'm only interested in capturing the HTML source.  Any ideas?
0
 
Anthony PerkinsCommented:
Make a reference to MSXML (v2.6, v3 or v4)
Try this code (it seems to work for me):

Private Sub cmdOK_Click()
Dim httpObj As MSXML2.XMLHTTP

Set httpObj = New MSXML2.XMLHTTP
With httpObj
  .open "GET", "http://www.msn.com", False
  .send
  txtOutput.Text = .responseText
End With
Set httpObj = Nothing

End Sub

Note:  If you are using a prior version to v2.6, than change the code as follows:
Dim httpObj As MSXML.XMLHTTPRequest

Set httpObj = New MSXML.XMLHTTPRequest

Anthony
0
 
DanRollinsCommented:
Hi rmayer,
It appears that you have forgotten this question. I will ask Community Support to close it unless you finalize it within 7 days. I will ask a Community Support Moderator to:

    Split points between: TimCottee and Richie_Simonetti and acperkins@devx
    *** hehehe

rmayer, if you think your question was not answered at all or if you need help, just post a new comment here; Community Support will help you.  DO NOT accept this comment as an answer.

EXPERTS: If you disagree with that recommendation, please post an explanatory comment.
==========
DanRollins -- EE database cleanup volunteer
0
 
SpideyModCommented:
per recommendation

SpideyMod
Community Support Moderator @Experts Exchange

TimCottee points added to unclaimed points (almost 500) for you at:
http://www.experts-exchange.com/Programming/Programming_Languages/Visual_Basic/Q_20463697.html

acperkins points added to unclaimed points for you at:
http://www.experts-exchange.com/Programming/Programming_Languages/Visual_Basic/Q_20471358.html
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.