Avatar billede KLS Novice
16. maj 2005 - 21:59 Der er 4 kommentarer og
2 løsninger

Læse HTML som streng

Hejsa..

Jeg ved godt at der sikkert er 100 svar på mit spørgsmål her på eksperten.dk, men jeg syntes ikke rigtigt at jeg kan finde det.

Det jeg skal bruge er en måde hvor jeg kan få læst en side ind, også søge i den streng / de strenge der må blive ud af det også lede efter noget bestemt.

lad os nu sige at jeg vil læse www.eksperten.dk også herfra vil jeg finde frem til den sektion, som hedder Nyeste spørgsmål.
så vil jeg så have den tekst med der hører til det felt og kun det felt.

jeg ved der har noget med instr() at gøre, men mere kan jeg sku ikke lige overskue, heller ikke om jeg skal bruge ITC eller noget andet.

jeg skal bruge dette i forbindelse med en application, hvor jeg udfra noget indhold, skal finde frem til bestemt information på en hjemmeside, som så skal skrives ind i nogle felter.

Spørg hvis dette ikke er godt nok beskrevet, eller på anden måde der er info i mangler.
Avatar billede thesurfer Nybegynder
16. maj 2005 - 22:43 #1
Dette giver dig måske en ide: http://www.eksperten.dk/spm/607506
Funktioner du kan bruge, kan du finde her: http://www.w3schools.com/vbscript/vbscript_ref_functions.asp#string
Avatar billede sjh Nybegynder
16. maj 2005 - 23:22 #2
Ja hvis du vil lave det med InStr() så kan du gøre sådan:


Option Explicit

Private Sub Form_Load()
Dim strText As String

  strText = "<html><title>Eksperten</title></html>"

  MsgBox FindString(strText, "<title>", "</title>")
End Sub

Public Function FindString(strText As String, strStart As String, strEnd As String)
Dim lStart As Long
Dim lEnd As Long
  lStart = InStr(1, strText, strStart, vbTextCompare)
  If lStart > 0 Then
    lStart = lStart + Len(strStart)
    lEnd = InStr(lStart, strText, strEnd, vbTextCompare)
    If lEnd > 0 Then
      FindString = Mid$(strText, lStart, (lEnd - lStart))
    End If
  End If
End Function
Avatar billede hiks Nybegynder
18. maj 2005 - 11:26 #3
og jeg kan jo så tilføje hvordan du får hentet siden:

tilføj en Inet Control (CTRL+T: Microsoft Internet Transfer Control). Indstil den på formen til
  AccessType = 0 'Default
  RemotePort = 80
  Protocol = 4 'HTTP

og når du så vil hente siden så er det følgende:

Private Sub HentMinSide()
    dim strURL as String
    dim toParse as String

    strURL = "http://mitdomæne.dk/indeks.asp"
    strURL = strURL & "?id=1"

    toParse = InetTjekUpdate.OpenURL(strURL)

    If Len(toParse) > 0 Then
        'find dit indhold
    Else
        'intet indhold i URL'en
    End If

End Sub

/hiks
Avatar billede KLS Novice
18. maj 2005 - 22:27 #4
jeg skal måske lige specificere at der er EN bestemt tekst jeg vil søge efter, også tilvenstre for den tekst er der en <tr> og det er det mellem den tr og den anden </tr> jeg skal have informationen. (eller noget i den stil)

jeg leger lidt med det også poster jeg selv den fulde kode jeg bruger på et tidspunkt :D
Avatar billede KLS Novice
18. maj 2005 - 22:43 #5
Kan godt være at jeg er lidt langsom , men kan i ikke lige smide koden sammen, så jeg ikke lige skal bryde mit hovede med dette..
har prøvet, men den finder ikke noget, hvor den burde finde noget..
kan være det er mig der gør det forkert.
Avatar billede sjh Nybegynder
19. maj 2005 - 01:32 #6
' ------------------------------ Form1 ------------------------------
Option Explicit

Private Sub Form_Load()
Dim strHtml As String

  strHtml = GetHTML("http://www.eksperten.dk/spm/618286")
  MsgBox FindString(strHtml, "<title>", "</title>")

End Sub

Public Function FindString(strText As String, strStart As String, strEnd As String)
Dim lStart As Long
Dim lEnd As Long
  lStart = InStr(1, strText, strStart, vbTextCompare)
  If lStart > 0 Then
    lStart = lStart + Len(strStart)
    lEnd = InStr(lStart, strText, strEnd, vbTextCompare)
    If lEnd > 0 Then
      FindString = Mid$(strText, lStart, (lEnd - lStart))
    End If
  End If
End Function

Public Function GetHTML(strURL As String) As String
Dim objHttp As Object
  Set objHttp = CreateObject("Microsoft.XMLHTTP")
  With objHttp
      .Open "GET", strURL, False
      .Send CStr(Rnd())
      GetHTML = StrConv(.ResponseBody, vbUnicode)
  End With
  Set objHttp = Nothing
End Function
' ------------------------------ Form1 ------------------------------
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester