Søgerobot - min løsning
Hejsa!I er nok ligeglade, men jeg er ret begejstret over at jeg har lavet en søgerobot til mit website. Altså en robot der går ud på nettet, og finder nye sider efterhånden som den kommer frem.
Jeg vil lige sige tak til netro her på Eksperten for hans hjælp med at udrede meta-tags.
Mit script er ret enkelt. Jeg er amatør, så profferne bedes tie stille hvis de ser noget som ikke er helt efter standarden. Hvis profferne alligevel ikke kan holde kæft, så må I gerne komme med lidt råd og vejledning om, hvordan jeg kan forbedre den :-)
Jeg har en tabel der hedder robtemp, og en tabel der hedder robolinks. Robotten starter med at hive et link ind fra robotemp, som den læser igennem. Alle de links den finder, bliver gemt i robotemp, og selve den side som den søger i bliver gemt i robolinks, som jeg kan bruge på mit website.
Det skal lige siges, at jeg har 2 tabeller med links. Den ene er den tabel, som gæster kan tilmelde links til. Den anden er den som robotten lægger links ind i. Hvis der allerede er tilmeldt et link, gemmer robotten ikke linket i den anden tabel.
<!--#include virtual="/db/connect.txt"-->
<%
Server.ScriptTimeOut = 1000
sql="SELECT * FROM robotemp"
set rs=con.Execute(sql)
adresse=rs("adresse")
Set HttpObj = Server.CreateObject("AspHTTP.Conn")
HTTPObj.Url = "http://"& adresse
streng=replace(HTTPObj.GetURL, " /", "")
ArrTitle1 = Split(Streng, "<title>",3,1)
If UBound(ArrTitle1) > 0 Then
ArrTitle2 = Split(ArrTitle1(1), "</title>",3,1)
titel = ArrTitle2(0)
End If
ArrDesc1 = Split(Streng, "<meta name=""description"" content=""",3,1)
If UBound(ArrDesc1) > 0 Then
ArrDesc2 = Split(ArrDesc1(1), """>",3,1)
beskrivelse = ArrDesc2(0)
End If
ArrKeys1 = Split(Streng, "<meta name=""keywords"" content=""",3,1)
If UBound(ArrKeys1) > 0 Then
ArrKeys2 = Split(ArrKeys1(1), """>",3,1)
keys = server.Htmlencode(replace(ArrKeys2(0), "''", ""))
End If
response.Write"<p>Adresse: "& adresse &"</p>"
response.Write"<p>Titel: "& titel &"</p>"
response.Write"<p>Beskrivelse: "& beskrivelse &"</p>"
response.Write"<p>Søgeord: "& keys &"</p>"
sql="SELECT COUNT(*) AS antal FROM robolinks WHERE linktekst='"& adresse &"'"
response.Write "<p>"& sql &"</p>"
set rs3=con.Execute(sql)
sql="SELECT COUNT(*) AS antal FROM links WHERE linktekst='"& adresse &"'"
response.Write "<p>"& sql &"</p>"
set rs4=con.Execute(sql)
if titel<>"" or beskrivelse<>"" or keys<>"" then
if rs3("antal")=0 and rs4("antal")=0 then
sql2="INSERT into robolinks (linktekst, linknavn, beskrivelse, tid, soegeord) VALUES('"& server.htmlencode(replace(adresse, "'", "")) &"', '"& server.htmlencode(replace(titel, "'", "")) &"', '"& server.htmlencode(replace(beskrivelse, "'", "")) &"', NOW(), '"& server.htmlencode(replace(keys, "'", "")) &"')"
response.Write "<p>"& sql2 &"</p>"
set rs2=con.Execute(sql2)
end if
end if
url="start"
Streng=server.htmlencode(Streng)
i=0
do until url=""
ArrUrl1 = Split(Streng, "http://",2,1) ' deler hele strengen ved det første link
If UBound(ArrUrl1) > 0 Then ' Hvis strengen er i 2 eller flere dele, så...
ArrUrl2 = Split(ArrUrl1(1), """,2,1) 'Andel del af strengen deles op ved første anførselstegn
url = replace(ArrUrl2(0), "')", "") 'Første del af den nye streng er urlen
url=replace(url,";return false;", "")
url=replace(url,"(';", "")
url=replace(url,"\", "")
url=replace(url,""<", "")
url=replace(url,">"", "")
url=replace(url,"'", "'")
Streng = ArrUrl1(1)
ignorer=0
if len(url)>100 then ignorer=1
if titel="" then ignorer=1
if InStr(1, url, "advertising.com",1)>0 then ignorer="JA"
if InStr(1, url, "chart.dk",1)>0 then ignorer="JA"
if InStr(1, url, "danban.dk",1)>0 then ignorer="JA"
if InStr(1, url, "danban.com",1)>0 then ignorer="JA"
if InStr(1, url, "hotstart.dk",1)>0 then ignorer="JA"
if ignorer<>"JA" then
sql="INSERT INTO t_robotemp (adresse) VALUES('"& url &"')"
response.Write "<p>"& sql &"</p>"
set rs2=con.Execute(sql)
end if
else
url=""
End If
loop
rs.movenext
adresse2=rs("adresse")
sql="DELETE FROM robotemp WHERE adresse='"& adresse & "'"
response.Write "<p>"& sql &"</p>"
set rs4=con.Execute(sql)
response.redirect("http://toflo.dk/lnkrobo/robo.asp)%>
