Gå til innhold

hente infofra andre sider, samurize, vbscript


Anbefalte innlegg

Videoannonse
Annonse

Joda, det går nok ann.

Et par tekst-funksjoner for å hente ut hva du vil ha og analysere.

 

Regner med at du ikke kan VB og bare vil ha noen til å skrive for deg. Da må du nok være litt mer presis..

 

Edit: Slik kan du hente www.storm.no:

Msgbox GetWebPage("http://www.storm.no")

 

Private Function GetWebPage(PassedURL)

   

    set Http = Createobject("Microsoft.XMLHTTP") 

    Http.Open "GET",URL & PassedURL, False

    Http.Send

   

    GetWebPage = BinToText(Http.ResponseBody, Len(Http.ResponseBody))

   

    set Http  = nothing

   

End Function

 

Private Function BinToText(varBinData, intDataSizeInBytes)

    Dim objRs

    Const adFldLong = &H00000080

    Const adVarChar = 200

    Set objRS = CreateObject("ADODB.Recordset")

    objRS.Fields.Append "txt", adVarChar, intDataSizeInBytes, adFldLong

    objRS.Open

    objRS.AddNew

    objRS.Fields("txt").AppendChunk varBinData

    BinToText = objRS("txt").Value

    objRS.Close

    Set objRS = Nothing

End Function 

Endret av Jonas
Lenke til kommentar

Tusen takk for svar :D

Nei, kan nok ikke VB men vil mer enn gjerne lære det :)

Anngående å vere mer presis:

Jeg vil hente ut f.eks. hva vær som er og kommer...

Og om det går ann; hente navn på icon og erstatte de med icon lokalt på maskinen...

 

Den koden du skrev Jonas, lager den html over til xml eller er det bare jeg som er litt "nybegynner"? :p

Lenke til kommentar

Nå kan jeg dessverre heller ikke Samurize, men om du ønsker å lære deg VB, vil muligens denne intruksjonsartikkelen gagne. Uheldigvis omhandler artikkelen Visual Basic 6, og ikke VBScript, skjønt disse to programmeringsspråkene er i bunn og grunn likedan. Du kan benytte dette programmet i samsvar med veiledningen på Wikibooks.

 

Skulle du ønske å jobbe videre med Visual Basic, kan du jo alltids lære deg VB .NET (kanhende bør du starte i denne enden òg, MEN, lærdommen kan da ikke benyttes direkte til VBScript).

Lenke til kommentar

start med og dele opp teksten du har lastet ned i faste deler, f.eks prøv og "split"'e teksten(html siden) på alle <table> merkene... se om du finner faste merker i teksten som ikke forandrer seg, og legg inn disse i programmet ditt... laster du ennda ner info fra www.storm.no?

Lenke til kommentar

Har gjort det men alle jeg har sett til nå bruker Plugin :S (.DLL filer)

Er det ikke noen slags funksjon i VBS som kan brukes til slikt da? Hvilken kommando brukes for å vise bilder i hjemmesider ved bruk av vbs? kansje den kan brukes ;)

Lenke til kommentar

VB sammen med Samurize ja... Jeg vet ikke hva som er koden for å vise bilder :S Er det noen egen kode for det? slik som det er <img> i HTML ?

 

(Jeg vet det ikke følger med noen dll'er med det programmet men alle programmer som viser bilder ser ut til å bruke dll...)

Endret av Filip_KickAss
Lenke til kommentar

Som Jonas har nevt, kan du nok uheldigvis ikke benytte eksempelet ovenfor direkte. Men, i et anfall av kjedsomhet, skrev jeg selv en liten VBS-kodesnutt som kan håndtere denne oppgaven. Nå har jeg riktignok kun fått programmet til å vise sluttresultatet i en merknadsboks, idet jeg ikke vet hvorledes den skal skrive til en annen side, men spesielt problematisk skulle det ikke være å fikse dette. Legg følgende i en VBS-fil:

 

' Start prosedyren og vis hva vi har kommet frem til

MsgBox ExecuteSearch("http://www.storm.no/tv2/Default.aspx?utmx=310493&utmy=6540958&meter=0&sted=Stavanger")

 

' Følgende er funksjonen som utfører uthentelsen av informasjon

Function ExecuteSearch(link)

 

    ' Lag referanse til analysator

    Set IE = CreateObject("InternetExplorer.Application")

   

    ' Ikke vis vindu

    IE.Visible = False

   

    ' Åpne siden som skal analyseres

    IE.navigate link

   

    ' Vent inntil lastingen av siden er ferdig

    Do While IE.Busy

 

        ' Vent i 10 millisekunder

        WScript.Sleep 10

   

    Loop

   

    ' Vi må nå fremhente den tabellen hvilket inneholder den ønskede informasjonen

    Set htmlTable = IE.Document.getElementById("Table1")

   

    ' Søk etter de tabellelementene som inneholder det vi er på utskikk etter

    For Each child In htmlTable.firstChild.childNodes

   

        ' Fellesnevneren for tabellene vi skal hente, er at de har denne bakgrunnsfargen

        If child.Attributes.getNamedItem("bgcolor").nodeValue = "#efefef" Then

       

            ' Gå gjennom alle direkte underelementer

            For Each Cell In child.childNodes

                ' Legg til informasjon fra denne cellen

                sReturn = sReturn & ExtractInformation(Cell) & vbCrLf

            Next

           

            ' Lag ny linje

            sReturn = sReturn & vbCrLf

       

        End If

       

    Next

   

    ' Rydd opp

    Set IE = Nothing

 

    '  Returner resultat

    ExecuteSearch = sReturn

   

End Function

 

' En underfunksjon som tar for seg oppgaven ved å hente ut den spesifikke informasjonen

Function ExtractInformation(objNode)

 

    ' Hent det elementet vi behøver

    Set element = objNode.firstChild.firstChild.firstChild.firstChild

 

    ' Let inntil vi finner elementet med selve informasjonen

    For Each child In element.childNodes

   

        ' Dette blir i realiteten det andre elementet, ettersom det første ikke er av denne klassen

        If child.Attributes.getNamedItem("class").nodeValue = "parttext" Then

   

            ' Sett returverdien til dette elementes verdi

            ExtractInformation = child.firstChild.nodeValue

   

            ' Vi er så å si ferdige

            Exit For

   

        End If

   

    Next

   

    ' Inkluder òg siste element

    ExtractInformation = ExtractInformation & " - " & element.lastChild.firstChild.nodeValue

 

End Function

 

Forhåpentligvis skulle dette fungere. Dersom du vil teste for andre steder, må du endre linken i første linje til den respektive side som representerer dette stedet.

 

Ja, jeg VET jeg benytter Internet Explorer i eksempelet (avatar => ironisk), men uheldigvis kan jeg ikke bero meg på Mozilla FireFox idet altfor få har dette installert (dessuten kan det nok by på problemer om jeg skulle forsøkt å kommunisere med denne applikasjonen via VBScript). Dere må således unnskylde - jeg hadde intet valg.

Endret av aadnk
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...