Extract Data From Website Using VBS (vbscript)
To get website data to using vbscript (.vbs) file, we need to know 2 processes. First one is to extract HTML code from website & then parse required data from HTML elements or tags.
Objects Used:
- CreateObject(“MSXML2.XMLHTTP”) ‘ To sent xmlhttp request to webserver & get html code.
- CreateObject(“htmlfile”) ‘ To parse data from html tags
To parse data from html, we can use the below commands on a htmlfile object.
- getElementById(“idname”)
- getElementsByClassName(“classname”)
- getElementsByTagName(“tagname – a,p,div,table,td,tr etc.,”)
- DOMobject.getAttribute(“attributename – title, href,class,id etc.,”)
- DOMobject.parentElement.NextSibling
There are plenty of functions like this to traverse through each tags or elements in a valid html file. Now, lets see a working example. To test this code, replace the URL with a valid website address.
myURL = "http://URL.com" 'Create XMLHTTP Object & HTML File Set oXMLHttp = CreateObject("MSXML2.XMLHTTP") Set ohtmlFile = CreateObject("htmlfile") 'Send Request To Web Server oXMLHttp.Open "GET", myURL, False oXMLHttp.send 'If Return Status is Success If oXMLHttp.Status = 200 Then 'Get Web Data to HTML file Object ohtmlFile.Write oXMLHttp.responseText ohtmlFile.Close 'Parse HTML File Set oTable = ohtmlFile.getElementsByTagName("table") For Each oTab In oTable MsgBox oTab.Innertext Next End If 'Process Completed WScript.Quit
To execute this code, copy paste this code to a text editor & save the file as “testing.vbs”. Then double click on this file, Windows OS will start to execute the commands one by one.
Reference:
- To write the extracted data to a Text file, check this article on how to write to a external file using vbs code.
- To scrape data from Webpage using Excel VBA, refer this page.