Avatar billede Slettet bruger
23. februar 2008 - 17:21 Der er 10 kommentarer og
1 løsning

"stjæle" date?

Hejsa

- Jeg vil lige høre om der er nogle som kender et script som gør at man kan åbne og analysere en side som ikke er på min server - altså 'remotely'.
Idéen er at hente nogle links fra pågældende side og så gemme den i en database på min server. En kollonne for hver link. Den skal kunne hente url og navn på link.
- Og NEJ! I dette her tilfælde er det ikke at stjæle! Jeg har tilladelse til at tage disse links - jeg vil bare gerne være fri for at skulle skrive dem alle ind i min database manuelt...
siden det skal hentes fra er denne: http://fdf.dk/bn/links/?kid=2

- Er det noget der kan lade sig gøre?

\Dan
Avatar billede olebole Juniormester
23. februar 2008 - 17:31 #1
<ole>

Løsningen er afhængig af, hvordan du vil hente data. Du kan indlæse dokumentets kode i en streng, som du lader ASP parse med noget RegExp. Du kan også udskrive en kopi af dokumentet og lade JavaScript/DOM hente de pågældende links og poste dem mod et dokument, som indsætter data i en DB

/mvh
</bole>
Avatar billede Slettet bruger
23. februar 2008 - 19:34 #2
Hej Ole

Min tanke var noget RegExp - hvor man jo i første omgang skal hente siden og så finde de links der skal findes... Altså kun dem der er på listen over kredsene... Og ikke fx. dem som er i menuen på siden med videre...

Og så når de links bladres igennem skal hvert gemmes i en database...

Hvordan skal dette skrues sammen?

\Dan
Avatar billede olebole Juniormester
23. februar 2008 - 20:33 #3
Jeg har ikke lige en IIS at teste på ved hånden, men et skud fra hoften er:

    Set Req = Server.CreateObject("Msxml2.ServerXMLHTTP")
    Req.Open "GET", "http://fdf.dk/bn/links/?kid=2", False
    Req.Send
    Text = Req.ResponseText
   
    startPos = InStr(Text, "<h1>Kredse</h1>") + 15
        '15 er antallet af tegn i strengen, der skal findes
    Text = Mid(Text, startPos)
    endPos = InStr(Text, "</ul>")
    Text = Mid(Text, 1, endPos)
        'Nu skulle Text gerne indeholde listens start-tag plus alle dens li-tags
   
    Set re = New RegExp
    re.Global = True
    re.IgnoreCase = True
    re.Pattern = "<a href=""(.*?)"""
    Set Matches = re.Execute(Text)
   
    For Each Match In Matches
        'gør noget med: Match.SubMatches(0)
    Next Match
Avatar billede olebole Juniormester
23. februar 2008 - 20:35 #4
Match.SubMatches(0) - indeholder hvert links href ... hvis skidtet altså virker. Husk i øvrigt at Dim'e alle variabler  ;o)
Avatar billede Slettet bruger
23. februar 2008 - 20:49 #5
Hej Ole

Det ser rigtig godt ud det her!

jeg lavede lige "Next Match" om til "Next" og så henter den url'erne som den skal - men hvordan får vi navnene med - altså den tekst som står imellem <a></a>?
Kan man ikke få begge dele med i samme for og next...

\Dan
Avatar billede olebole Juniormester
23. februar 2008 - 20:57 #6
- sikkert noget i stil med:

Private Sub Command1_Click()
    Set Req = Server.CreateObject("Msxml2.ServerXMLHTTP")
    Req.Open "GET", "http://fdf.dk/bn/links/?kid=2", False
    Req.Send
    Text = Req.ResponseText
   
    startPos = InStr(Text, "<h1>Kredse</h1>") + 15
        '15 er antallet af tegn i strengen, der skal findes
    Text = Mid(Text, startPos)
    endPos = InStr(Text, "</ul>")
    Text = Mid(Text, 1, endPos)
        'Nu skulle Text gerne indeholde listens start-tag plus alle dens li-tags
   
    Set re = New RegExp
    re.Global = True
    re.IgnoreCase = True
    re.Pattern = "<a href=""(.*?)""[^>]*>(.*?)</a>"
    Set Matches = re.Execute(Text)
   
    For Each Match In Matches
        'gør noget med: Match.SubMatches(0) & " :: " & Match.SubMatches(1)
    Next Match
End Sub
Avatar billede olebole Juniormester
23. februar 2008 - 20:58 #7
Nåja ... jeg fik ikke rettet 'Next Match' til bare 'Next'  ;o)
Avatar billede Slettet bruger
23. februar 2008 - 21:11 #8
Det virker bare præcist som det skal!!!

Tak for hjælpen!

Smid et svar for point...

\Dan
Avatar billede olebole Juniormester
23. februar 2008 - 21:24 #9
Selvtak ... *griiiiiiiiiiiiiiiiiiiiiiiiib*  ;o)
Avatar billede olebole Juniormester
23. februar 2008 - 21:34 #10
Tak for points  :)
Avatar billede Slettet bruger
23. februar 2008 - 21:47 #11
Det var så lidt!...
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