Avatar billede tofferman Nybegynder
14. juli 2003 - 20:01 Der er 11 kommentarer og
1 løsning

Søgerobot - problem

Hejsa.
Jeg har lavet en søgerobot, som vi har diskuteret før her:

http://www.eksperten.dk/spm/370081

Hvis der opstår en fejl under indlæsning af siden, f. eks. 404 Not Found springer den linket over, og tager det næste i køen.

Dvs. at jeg kan opfange hvis URL´en ikke findes. Men hvis selve domænet ikke findes (svarer til at msn-search kommer frem i IE), så får jeg en fejl 500 og robotten stopper.

Er der nogen der har en idé til hvordan det kan løses?
Avatar billede netro Nybegynder
15. juli 2003 - 03:59 #1
Hvis du tjekker links'ne med ASPhttp, så får du returneret header-koden 500 (Internal Server Error) direkte til dit script i stedet for at blive kastet hen til MSN-Search.

Se evt. http://www.html.dk/scripts/asp/00009/
Avatar billede tofferman Nybegynder
16. juli 2003 - 01:10 #2
Det har jeg implementeret i den, med din hjælp :-)

Problemet er, at den kun returnerer en header-kode 500 hvis domænet findes, men den ikke kan finde den præcise url.

Eksempel:
1. Min robot tjekker linket http://toflo.dk/default.asp. Ingen problemer.

2. Min robot tjekker linket http://toflo.dk/findesikke.asp. Returnerer header-kode 500.

3. Min robot tjekker linket http://balladelink.dk. Robotten stopper, da der ikke er noget domæne der hedder dette. Der returneres ikke nogen header-kode 500.

Det er i situation 3 at mit problem ligger.
Avatar billede netro Nybegynder
16. juli 2003 - 03:21 #3
*.Response skulle gerne returnere "404", hvis siden ikke findes. Fungerer det ikke??

Set HTTPObj = Server.CreateObject("AspHTTP.Conn")
HTTPObj.Url = "http://balladelink.dk"
HTTPObj.GetURL
If InStr(HTTPObj.Response, "404") > 0 Then
  Response.Write "Siden findes ikke!"
Else
  Response.Write Server.HTMLencode(HTTPObj.GetURL)
End If
Set HTTPObj = Nothing
Avatar billede tofferman Nybegynder
16. juli 2003 - 12:08 #4
Jeg har vrøvlet lidt.

I mine eksempler mener jeg header-kode 404, og IKKE 500.
Avatar billede netro Nybegynder
16. juli 2003 - 16:24 #5
Okay, men hvad returneres der så?

Set HTTPObj = Server.CreateObject("AspHTTP.Conn")
HTTPObj.Url = "http://balladelink.dk"
HTTPObj.GetURL
Response.Write HTTPObj.Response
Avatar billede tofferman Nybegynder
22. juli 2003 - 00:26 #6
Intet, dvs. jeg får en blank hvid side.
Avatar billede tofferman Nybegynder
22. juli 2003 - 00:32 #7
Ahhhhh....

Jeg skal selvfølgelig teste for HTTPObj.Response=""

:-))

Tror det virker.
Avatar billede netro Nybegynder
22. juli 2003 - 01:13 #8
Ja, for et eller andet får du jo returneret, hvis siden ikke findes.
Avatar billede tofferman Nybegynder
22. juli 2003 - 02:21 #9
Ok, så har vi fået ryddet de sider af vejen, og pointene skal du nok få.

Hvad så med:

Set HTTPObj = Server.CreateObject("AspHTTP.Conn")
HTTPObj.Url = "http://download.adobe.com/pub/adobe/acrobatreader/mac/5.x/rsme505heb.sit"
HTTPObj.GetURL
Response.Write HTTPObj.Response
Avatar billede netro Nybegynder
22. juli 2003 - 03:15 #10
Fildownload... hmm... Hvad returnerer HTTPObj.Response i det tilfælde?
Avatar billede tofferman Nybegynder
22. juli 2003 - 03:54 #11
Ingenting tilsyneladende. Når man kører ovenstående kode står siden bare og prøver at åbne. Ingen respons før der er en timeout.
Avatar billede netro Nybegynder
22. juli 2003 - 05:38 #12
Mit umiddelbare foreslag er, at du laver dig en funktion, der tjekker filtypen ud fra filnavnet efter en evt. skråstreg og angiver, hvilke der skal undersøges.

Function FileExtOK(Link)
  Arr_Link = Split(Replace(Link, "http://", ""), "/")
  If UBound(Arr_Link) > 0 Then
      Arr_Exts = Array(".htm", ".html", ".asp", ".aspx", ".php", ".php3", ".swv", ".swf")
      For i = 0 To UBound(Arr_Exts)
        If LCase(Right(Arr_Link(UBound(Arr_Link)), Len(Arr_Exts(i)))) = Arr_Exts(i) Or InStr(Arr_Link(UBound(Arr_Link)), ".") = 0 Then
            FileExtOK = True
            Exit For
        End If
      Next
  Else
      FileExtOK = True
  End If
End Function

If FileExtOK("http://www.babes.com/") Then
  Response.Write "Linket er gyldigt - hent kildekode!"
End If
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