Webcrawler mit Blitzbasic

Übersicht BlitzBasic FAQ und Tutorials

Neue Antwort erstellen

Smily

Betreff: Webcrawler mit Blitzbasic

BeitragMi, Apr 11, 2007 22:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
Ich hab mich jetzt auch mal an einem Tutorial versucht und habe einfach mal das Thema "Webcrawler mit Blitzbasic" gewählt.

Liegt derzeit leider nur als Word-Document vor, da mein PDF-Creator atm etwas rumspinnt.

http://phpprogger.ph.funpic.de/tuts/Webcrawler.doc

Ich hoffe es ist verständlich ^^

mfg, Smily0412
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

Smily

BeitragDi, Mai 08, 2007 18:07
Antworten mit Zitat
Benutzer-Profile anzeigen
sry für Doppelpost, aber ich hatte eigentlich auf eine Ressonanz bzw Kritik gehofft. Ich würde gerne Wissen, was ich bei meinen Nächsten tuts besser machen kann.

Gruß, Smily0412
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

Silver_Knee

BeitragDi, Mai 08, 2007 20:15
Antworten mit Zitat
Benutzer-Profile anzeigen
nunja ich finde das ist ein schönes tut hätte mir sicher geeholfen wenn ichs noch nicht gekannt hätte^^ Es gab jetzt keinen punkt wo ich gesagt hätte: ne also so geht das net! sogesehen voll in ordnung^^

derAtomkeks

ehemals "Sethus"

BeitragMi, Mai 09, 2007 8:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, ich habe auch schon öfter von Seitenaufruf etc. mit Blitzbasic gelesen, aber leider nie verstanden Embarassed Mir waren die Erklärungen immer zu kompliziert / zu lang. Dank diesem Tut hab ichs jetzt endlich verstanden Very Happy ! Danke!

Ninja

BeitragMi, Mai 09, 2007 16:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Das hat mit einem Webcrawler aber nichts zu tun, ein webcrawler durchsucht die seiten auf links und durchsucht die links dann wiederum auf links usw. um möglichst alle durch links erreichbaren seiten zu finden (Wird z.B. von Suchmaschinen wie google verwendet).
Spiele & Security Tools
www.SelfSoft.org

Smily

BeitragMi, Mai 09, 2007 18:22
Antworten mit Zitat
Benutzer-Profile anzeigen
sry mir war kein besserer Name eingefallen ^^

Edit:
wikipedia.de hat Folgendes geschrieben:
Ein Webcrawler (auch Spider oder Robot, kurz Bot) ist ein Computerprogramm, das automatisch das World Wide Web durchsucht und Webseiten analysiert. Webcrawler werden vor allem von Suchmaschinen eingesetzt. Weitere Anwendungen sind beispielsweise das Sammeln von RSS-Newsfeeds, E-Mail-Adressen oder anderer Informationen.
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

Der_Schläfer

Betreff: Super Sache!

BeitragFr, Sep 28, 2007 15:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke, das war echt hilfreich. Ich hatte nichtmal gewusst dass man überhaupt mit dem b3d auf Internet-Seiten zugreifen kann (bin halt auch nicht so fit mit dem internet-zeugs). Very Happy

EDIT:
Was ich mich jetzt noch frage: Kann man auch Bilder aus dem Internet ins B3d herunterladen und dann anschaun? Wenn ja, wie?

flona

BeitragFr, Sep 28, 2007 20:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Suche! Very Happy
Ich hab hier irgendwo schonmal sowas gesehen, hab's aber jetzt so auf die Schnelle nicht gefunden.
 

hoohead

BeitragSo, Dez 16, 2007 22:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke fürs Tutorial.

Kleine Frage.
Ich würde gerne ein script realisieren, dass die Verfügbarkeit einer Seite überprüft.
Dazu könnte man ja diese Funktion wunderbar einsetzen.
Leider wirft mir das script, wenn ich zu Seite connecten möchte die nicht existieren ein Popup auf mit invalid streamhandle.
Wie unterbinde ich das?

Bsp.: input "zu überprüfende Webseite" -> google.de
-> Resultat HTTP ... ok
input "zu überprüfende Webseite" ->irgendwaswassnichtgib.de
-> Resultat ""
^hier soll jetzt das Popup invalid streamhandle unterbunden werden.

ozzi789

BeitragDi, Dez 18, 2007 17:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich fend das ne tolle Idee.
Doch wieso kann es bei mir den Stream ned öffnen (firewall Evil or Very Mad ) ?
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Silver_Knee

BeitragDi, Dez 18, 2007 18:09
Antworten mit Zitat
Benutzer-Profile anzeigen
die invalid streamhandle passiert wenn du versuchst etwas von einer nicht verfügbaren DNS auszulesen. In diesem Fall ist nämlich die Rückgaabe von OpenTCPStream =0. Diese Null übergibst du dann Readline und das stellt fest: Die Stream addresse stimmt nicht!

ozzi789

BeitragDi, Dez 18, 2007 18:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Ach so xD

Jetz funkts mit dem Stream , aba wieso kann ich nicht mit Print den Notify oder Autor ausgeben ?
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Silver_Knee

BeitragDi, Dez 18, 2007 18:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
server$="www.bla.com"
stream=OpenTCPStream(server,80)
if stream=0
 Print "Die Page "+Server+" ist down!"
else
 Print "Die Page "+Server+" ist up."
endif
  • Zuletzt bearbeitet von Silver_Knee am Di, Dez 18, 2007 19:40, insgesamt einmal bearbeitet
 

Gast

BeitragDi, Dez 18, 2007 19:12
Antworten mit Zitat
*Doppelhust* @ Silver_Knee weil
SilverKnee hat Folgendes geschrieben:

server$="www.bla.com"
stream=OpenTCPStream(server%,80)


Erst Definierst du Server sls String, dann als Intreger...
Ergebnis = Variable Type Missmach Wink

Silver_Knee

BeitragDi, Dez 18, 2007 19:40
Antworten mit Zitat
Benutzer-Profile anzeigen
ach sry das war n tippfehler... *Nacheditier*
 

hoohead

BeitragMi, Dez 19, 2007 0:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Super Silver_Knee, genau so eine Lösung habe ich gesucht.

Möchte an dieser Stelle einmal ein Lob aussprechen an euer Forum.
Wenn man Probleme hat, gibts kompetente Hilfe.

Big THX
 

TeDy14

Gast

BeitragMi, Dez 19, 2007 16:47
Antworten mit Zitat
Ich hatte mal einen richtigen Webcrawler gemacht und auch eine Kleine suchmachine...

Aber er ist an unzähligen fehlern gescheitert...
Schaut ihn euch am besten selbst an...
BB:
Code: [AUSKLAPPEN]
Global key=OpenFile("Keywords.txt")
Global num=1
server1=OpenFile("server.txt")
Global server2=OpenFile("server1.txt")
While Not Eof(server1)
server$=ReadLine(server1)
seite$=Getsite$(server$)
link$=Getlink$(seite$)
a=0
 While link$<>""
  seite$=Getsite$(server$+link$)
  link$=Getlink$(seite$)
 a=a+1
   If a>10 Then link$=""
 Wend
Wend
CloseFile(server1)
CloseFile(server2)

Function Getsite$(add$)
If Instr(add$,"http://",1)<>0
 add$=Mid(add$,Instr(add$,"http://",1)+7,Len(add$)-Instr(add$,"http://",1))
EndIf

add$=add$+"/"
add$=Replace(Lower(add$),"//","/")
add$=Replace(Lower(add$),"wikipedia","google")


server$=Left(add$,Instr(add$,"/",1)-1)
If Instr(add$,"/",1)<>0 Then dat$=Mid(add$,Instr(add$,"/",1),Len(add$)-Instr(add$,"/",1)+2)
Stream = OpenTCPStream(server$, 80)
If stream<>0

WriteLine(server2,add$)
WriteLine stream, "GET "+dat$+" HTTP/1.0"
WriteLine stream, "host: "+server$
WriteLine stream, ""
go=0
While Not Eof(stream)
   li$=ReadLine(stream)
   If Instr(Lower(li$),"<body",1)<>0 Then go=1
   If go=1 Then full$=full$+li$
Wend
bes$=full$
If Len(bes$)<500 Then bes$=Left(bes$,Len(bes$)):Else:bes$=Left(bes$,500)
Stream = OpenTCPStream("dark19.da.funpic.de", 80)
WriteLine stream, "GET /suche/crawler.php?server="+UrlEncode$(server$)+"&text="+UrlEncode$(bes$)+"&dat="+UrlEncode$(dat$)+"&tag="+UrlEncode$(tag$(full$))+" HTTP/1.0"
WriteLine stream, "host: dark19.da.funpic.de"
WriteLine stream, ""
While Not Eof(stream)
If ReadLine(stream)="!>" Then m$=ReadLine(stream)
Wend
Select m$
Case "1"
Print num+"|"+server$+dat$+" wurden hinzugefügt"
Case "2"
Print num+"|"+server$+dat$+" war schon eingetragen"
End Select


Else
Print "Es konnte keine Verbindung aufgebaut werden"
EndIf
Return full$

num=num+1
End Function





Function Getlink$(add$)
start=Rand(1,Len(add$))
 pos1=Instr(add$,"href=",start)
 If pos1<>0
  pos1=pos1+6
  pos2=Instr(add$,Chr(34),pos1)
  link$=Mid(add$,pos1,(pos2-pos1))
  link$=Right(link$,Len(link$)-0)

 EndIf

Return link$
End Function

Function strip$(st$)
pos1=0
pos2=0
While Instr(st$,"<",1)
pos1=Instr(st$,"<",1)
pos2=Instr(st$,">",pos1)+1
tag$=Mid(st$,pos1,(pos2-pos1))
st$=Replace(st$,tag$,"")
Wend
Return st$
End Function


Function tag$(st$)
SeekFile(key,1)
While Not Eof(key)
s1$=ReadLine(key)
If Instr(Lower(st$),Lower(s1$),1) Then bes$=bes$+" "+s1$
Wend
Return bes$
End Function


Function UrlEncode$(t$)
t$=Replace$(t$,"%","%25")
t$=Replace$(t$,"+","%2B")
t$=Replace$(t$," ","%20")
t$=Replace$(t$,"@","%40")
t$=Replace$(t$,"ß","%DF")
t$=Replace$(t$,"?","%3F")
t$=Replace$(t$,"=","%3D")
t$=Replace$(t$,")","%29")
t$=Replace$(t$,"(","%28")
t$=Replace$(t$,"/","%2F")
t$=Replace$(t$,"&","%26")
t$=Replace$(t$,"$","%24")
t$=Replace$(t$,"§","%A7")
t$=Replace$(t$,Chr$(34),"%22")
t$=Replace$(t$,"!","%21")
t$=Replace$(t$,"^","%5E")
t$=Replace$(t$,"#","%23")
t$=Replace$(t$,"'","%27")
t$=Replace$(t$,"<","%3C")
t$=Replace$(t$,">","%3E")
t$=Replace$(t$,"\","%5C")
t$=Replace$(t$,"{","%7B")
t$=Replace$(t$,"}","%7D")
t$=Replace$(t$,"[","%5B")
t$=Replace$(t$,"]","%5D")
Return t$


Crawler.php
Code: [AUSKLAPPEN]
<?php
$server=$_GET['server'];
$seite=$_GET['dat'];
$text=$_GET['text'];
$tag=$_GET['tag'];
$titel=$_GET['titel'];

include "sql.inc";
$abfrage = "SELECT * FROM index1";
$ergebnis = mysql_query($abfrage) or die(mysql_error());
while ($row = mysql_fetch_object($ergebnis))
{
if ($server."/".$seite == $row->server."/".$row->seite) {$get="ja";}
}

if ($get == "") {
$abfrage = "INSERT INTO index1 (server , seite, text, tag, titel) VALUES ('$server', '$seite', '$text', '$tag', '$titel')";
$ergebnis = mysql_query($abfrage) or die(mysql_error());
}
echo "!>\n";
if ($get=="") {echo "1";}
if ($get=="ja") {echo "2";}
?>


Sorry das der Code so unformatiert ist aber es war nur ein kleines Projekt von mir weil mir mal einen Tag lang langweilig war ...

Vieleicht kann ja jemand davon etwas brauchen
 

Hahninator

BeitragMi, Feb 20, 2008 17:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

also erstmal Herzlichen Dank für dieses Top Tutorial.
Aber wie es scheint, wurde die Struktur von wikiquote umgeschrieben. Ich habe das Letzte Programm mal angepasst.^^

Code: [AUSKLAPPEN]

Stream = OpenTCPStream("de.wikiquote.org", 80)

WriteLine Stream, "GET /wiki/Hauptseite HTTP/1.0"
WriteLine Stream, "host: de.wikiquote.org"
WriteLine Stream, ""

Repeat
 Bla$ = ReadLine(Stream)

 

 If Instr(Bla,">Zitat des Tages<") > 0 Then
  ReadLine Stream
  zi$ = ReadLine(Stream)
  ti$ = ""
  Blub = Instr(Zi,">" + Chr(34))
   If Blub = 0 Then Print "Zitat nicht gefunden"
   If Blub > 0 Then
    Repeat
     X = X + 1
     If KA = 0 Then
      If Mid(Zi,Blub + X,1) >< "<" And Mid(Zi,Blub + X,1) >< ">" Then
       Zitat$ = Zitat$ + Mid(Zi,Blub + X,1)
      EndIf
      If Mid(Zi,Blub + X,1) = "<" Then
       KA = 1
      EndIf
     EndIf
     If KA = 1 Then
      If Mid(Zi,Blub + X,1) = ">" Then
       Ka = 0 
      EndIf
     EndIf
    Until Len(Zi) < blub + X
   zi = ReadLine(stream)
   Pos1 = Instr(Zi, Chr(34) + ">") + 2
   pos2 = Instr(Zi, "<", Pos1)
   Autor$ = Mid(zi, pos1, pos2-pos1)
   EndIf
  EndIf
 Until Eof(Stream)

Print Autor
Print Zitat

Neue Antwort erstellen


Übersicht BlitzBasic FAQ und Tutorials

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group