webForumDet fria alternativet

Hämta all text från en sida

ASP

7 svar · 310 visningar · startad av Addeladde

Medlem sedan jan. 20013 406 inlägg
Frågan#1

Hej

Kan man bygga en funktion som hämtar all text från vilken sida som helst och sedan sparar det i en variabel.

Texten behöver inte på något sätt vara snyggt sparad utan det räcker med att få all text från webbsidan utan htmltaggar bilder och annat joxx sparat i en variabel.

Hur går jag i så fall tillväga?

Medlem sedan jan. 20032 285 inlägg
#2

Menar du typ såhär?

Function GetPage(strURL)
  On Error Resume Next

  Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
  objHTTP.Open "GET", strUrl, False
  objHTTP.Send

  If Err.Code <> "" Then
    strReturn = "Sidan fanns inte"
  Else
    strReturn = Replace(Server.HTMLEncode(objHTTP.ResponseText), vbCrLf, "<br>")
  End If

  Set objHTTP = Nothing
  GetPage = strReturn
End Function

strSida = GetPage("http://www.webforum.nu")
Medlem sedan jan. 20013 406 inlägg
#3

Det retunerar allt inklusive html-taggar och allt. Jag vill vara ha texten från sidan.

Medlem sedan jan. 20013 406 inlägg
#4

[kod]
<%
Function GetPage(strURL)
'On Error Resume Next

Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objHTTP.Open "GET", strUrl, False
objHTTP.Send

'If Err.Code <> "" Then
'strReturn = "Sidan fanns inte"
'Else
strReturn = objHTTP.ResponseText
'End If

Set objHTTP = Nothing
GetPage = strReturn
End Function

Function RemoveStyle(ByVal sString)
Dim objRegExp
Set objRegExp = New RegExp
objRegExp.Global = True
objRegExp.Pattern = "<style[\s\S]*?</style>"
RemoveStyle = objRegExp.Replace(sString & "", "")
Set objRegExp = Nothing
End Function

Function RemoveJava(ByVal sString)
Dim objRegExp
Set objRegExp = New RegExp
objRegExp.Global = True
objRegExp.Pattern = "<script[\s\S]*?</script>"
RemoveJava = objRegExp.Replace(sString & "", "")
Set objRegExp = Nothing
End Function

Function RemoveHTML(ByVal sString)
Dim objRegExp
Set objRegExp = New RegExp
objRegExp.Global = True
objRegExp.Pattern = "<[^>]*>"
RemoveHTML = objRegExp.Replace(sString & "", "")
Set objRegExp = Nothing
End Function

strSida = GetPage("http://www.aftonbladet.se")
strSida = RemoveStyle(strSida)
strSida = RemoveJava(strSida)
strSida = RemoveHTML(strSida)

response.write strSida

%>
[kod]

Inte speciellt optimerad kod ännu men pröva den på aftonbladet.se så ser ni att den inte tar bort allt skräp. Någon som vet varför?

Medlem sedan jan. 20013 406 inlägg
#5

Någon som vet varför ovanliga tecken som åäö hämtas och blir frågetecken?

Medlem sedan mars 20015 287 inlägg
#6

Sök en smula på XMLHTTP här på forumet så lär du hitta en o annan tråd som tar upp det...

Medlem sedan jan. 20032 285 inlägg
#7

Såhär då?

/red Vill inte funka... Det är väl jag som är trög såhär efter skolan. ;)
/red2 Nu fick jag i alla fall till det sådär! :)

Function GetPage(strURL)
  On Error Resume Next

  Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
  objHTTP.Open "GET", strUrl, False
  objHTTP.Send

  If Err.Number > 0 Then
    strReturn = "Sidan fanns inte"
  Else
    strReturn = objHTTP.ResponseBody

    For i = 1 To LenB(strReturn)
      strTemp = strTemp & Chr(AscB(MidB(strReturn, i, 1)))
    Next

    strReturn = Replace(strTemp, vbCrLf, "<br>")
  End If

  Set objHTTP = Nothing
  GetPage = strReturn
End Function

Function RemoveStyle(ByVal sString) 
  Dim objRegExp 
  Set objRegExp = New RegExp 
  objRegExp.Global = True 
  objRegExp.Pattern = "<style[\s\S]*?</style>" 
  RemoveStyle = objRegExp.Replace(sString & "", "") 
  Set objRegExp = Nothing 
End Function 

Function RemoveJava(ByVal sString) 
  Dim objRegExp 
  Set objRegExp = New RegExp 
  objRegExp.Global = True 
  objRegExp.Pattern = "<script[\s\S]*?</script>" 
  RemoveJava = objRegExp.Replace(sString & "", "") 
  Set objRegExp = Nothing 
End Function 

Function RemoveHTML(ByVal sString) 
  Dim objRegExp 
  Set objRegExp = New RegExp 
  objRegExp.Global = True 
  objRegExp.Pattern = "<[^>]*>" 
  RemoveHTML = objRegExp.Replace(sString & "", "") 
  Set objRegExp = Nothing 
End Function 

strSida = Replace(Replace(RemoveHTML(RemoveJava(RemoveStyle(GetPage("http://www.webforum.nu")))), vbCrLf, "<br>"), Chr(10), "<br>")
Response.Write(strSida)
Medlem sedan jan. 20013 406 inlägg
#8

Finns det några fler taggar som jag inte tänkt på där det står skräp emellan. Alltså <tagg>Skräp</tagg>?

269 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)