Erste Schritte Programmieren eines Web Crawlers mit Java

Benny308

Mitglied
Hallo liebes Forum,

ich möchte gerne einen web crawler programmieren, der mir spezifische Informationen von definierten Internetseiten besorgt.
Ich habe im Internet ein Video gefunden mit einem Beispiel, welches meinen Wünschen sehr nahe kommt:

Web Scraping, Screen Scraping, Web Data Mining, Data Extractor - YouTube

Nun zu meiner Frage: Ich bin ein blutiger Anfänger im Bereich der Programmierung. Ist es prinzipiell möglich mit Java solch einen Web Crawler zu programmieren? Ist es möglich für einen normalsterblichen Anfänger mit normalen Computerkenntnissen dies im Eigenstudium zu erlernen (vielleicht kennt ihr empfehlenswerte Literatur)?
Wie aufwendig ist es, dieses Programm zu schreiben? Ich bin berufstätig und bräuchte es für berufliche Zwecke so schnell wie möglich, habe aber durch meinen Job natürlich nur eingeschränkt Zeit zum Arbeiten an diesem Projekt.

Ich wäre euch sehr dankbar für ein paar Tipps und Einschätzungen bzw. ob eine alternative Programmiersprache sinnvoll wäre.

Vielen Dank und beste Grüße

Benny
 
G

Gast2

Gast
Das ist mit Java ohne Probleme Möglich. Was du dafür brauchst ist folgendes:
- HTML Code einer Seite lesen
- HTML Code parsen
- gesuchte Informationen heraussuchen

Falls du allerdings keine Ahnung vom Programmieren hast, dann ist das nicht in nen paar Tagen machbar. Wenn du das zeitnah brauchst, dann solltest du dich vielleicht mal an die Jobbörse wenden.
 

Benny308

Mitglied
Vielen Dank für deine schnelle Antwort.
Natürlich brauche ich das Programm so schnell wie möglich, aber ich möchte es gerne selbst schreiben, weil ich nicht bei jedem Problem oder Erweiterung wieder abhängig sein will. Ich habe die Möglichkeit einen Einführungskurs zu besuchen und will mir den Rest über Bücher bzw. mit Hilfe des Forums beibringen.

Wenn ich dich noch um eine realistische Einschätzung bitten dürfte. Wie anspruchsvoll ist die Programmierung eines Web Crawler?

Ist es bis zum Ende des Jahres für einen unerfahrenen Hobbyprogrammierer möglich. Ist einfach für mich wichtig, damit ich selbst den Aufwand einschätzen kann und es im Unternehmen kommunizieren kann.
Hast du irgendwelche Literaturempfehlungen?

Nochmals besten Dank!
 

Ark

Top Contributor
Wie anspruchsvoll ist die Programmierung eines Web Crawler?
Das kommt sehr auf die Problemstellung an. Beispiele: Soll er 24/7-tauglich sein oder nur auf Anfrage operieren? Soll er spezielle Seiten nach speziellen Informationen absuchen, oder geht er auf alles los, was ihm so einfällt? Sollen mehrere Crawler gleichzeitig arbeiten können? Wie gut soll er sich von Abstürzen erholen?

Allein die letzte Frage könnte, wenn man es selbst implementieren wollte, ein Mini-Projekt formen, das sich nur mit dieser Frage beschäftigt und selbst vielleicht genauso groß ist wie der Rest des Crawlers.

Ark
 

Benny308

Mitglied
Danke für deine Antwort!

Was ich bis jetzt sagen kann, ist, dass der Crawler etwa 200-300 Internetseiten, welche zuvor definierte wurden, durchsuchen soll. Er muss dabei nicht die ganze Seiten durchsuchen, sonder nur ein bestimmter Teil der Seiten (auch zuvor festgelegt). Ich habe bis jetzt nur einen Crawler geplant. Die Ergebnisse soll er dann in eine CSV oder ähnliches exportieren.

Was meinst du genau mit: Wie gut soll er sich von Abstürzen erholen?
Wenn er bei der Suche abstürzt, wäre es nicht schlimm, wenn die Daten verloren gehen. Mann konnte Ihn theoretisch wieder neu starten. Die Suche wird einmal die Woche durchgeführt.

Bin leider noch ganz am Anfang der Materie, weshalb ich einige Sachen noch nicht richtig beantworten kann, sorry.???:L

Ich habe einige Tutorials bei Youtube gefunden und Bücher bei Galileo Computing, die ich mal durcharbeiten will.

Kannst du den Aufwand nun besser Einschätzen? Das Endresultat soll dem Youtube Video, welches ich in meinem ersten Post veröffentlicht habe sehr nahe kommen.

Besten Dank nochmals!

Benny
 
J

JohannisderKaeufer

Gast
Hallo,

es gibt da diese Online Learning Plattformen wie coursera und udacity, die ich garnicht mal so schlecht finde.

Und eben auf Udacity ist ein Kurs Introduction to Computerscience, der einem das Programmieren beibringen will.

Udacity - Introduction to Computer Science Course (CS101)

In diesem Kurs wird das interaktiv mit der Programmiersprache Python und eben dem Beispiel erstellen einer Suchmaschine gemacht.

Das ganze ist kostenfrei, auf Englisch und definitiv einen Blick wert.
 

Benny308

Mitglied
Vielen Dank für den super Tipp!!!

Werde ich mir auf jeden Fall anschauen. Ich denke ich setze mich einfach mal dran.

Danke ans Forum für eure Hilfe.

P.S. Bei Fragen während des Projekts werde ich auf jeden Fall auf euch zukommen:D

Grüße und ein schönes Restwochenende
 

Ark

Top Contributor
Bin leider noch ganz am Anfang der Materie, weshalb ich einige Sachen noch nicht richtig beantworten kann, sorry.???:L
Ja, Web Scraping ist ein Thema, das schnell komplex werden kann. Hier noch ein paar Fragen, um sich da schon mal Gedanken zu machen bzw. Informationen einzuholen:
  • Lädt die Seite Inhalte dynamisch (z.B. über JavaScript) nach?
  • Versucht die Gegenstelle, Scraper zu blockieren bzw. an ihrer Arbeit zu hindern?
  • Gibt es keine für Scraper gemachte Schnittstelle (etwa via XML)?
  • Ist eine Authentifizierung, verschlüsselte Verbindung oder Ähnliches erforderlich? Müssen Formulare ausgefüllt werden?
  • Soll sich der Scraper an bestimmte Restriktionen (etwa Maximalgeschwindigkeiten oder Proxys) halten?
  • Soll sich der Scraper an robots.txt halten?

Ich habe bis jetzt nur einen Crawler geplant.
Vermutlich antwortest du auf die Frage, ob mehrere Crawler gleichzeitig arbeiten sollen. In meiner Frage ging es eher darum, ob mehrere Crawler, die alle das Gleiche leisten (könnten), gemeinsam z.B. auf verschiedenen Maschinen arbeiten können sollen, damit immer einer arbeiten kann, falls ein anderer ausfällt.

Da du aber Folgendes geschrieben hast,
Wenn er bei der Suche abstürzt, wäre es nicht schlimm, wenn die Daten verloren gehen. Mann konnte Ihn theoretisch wieder neu starten. Die Suche wird einmal die Woche durchgeführt.
gehe ich davon aus, dass das alles nicht so wild ist.

Die Ergebnisse soll er dann in eine CSV oder ähnliches exportieren.
Es gibt hier mehrere Threads, die sich nur damit beschäftigen, wie man CSV korrekt einliest. Schon damit kann man sich also eine Weile beschäftigen – oder nach fertigen Libs suchen.

Kannst du den Aufwand nun besser Einschätzen? Das Endresultat soll dem Youtube Video, welches ich in meinem ersten Post veröffentlicht habe sehr nahe kommen.
Je nachdem, wie mächtig das Werkzeug und/oder seine Nutzerschnittstellen sein sollen, kann z.B. allein die Dokumentation der CLI-Version ganz schön Platz einnehmen. Beispiel: wget Wie es aussieht, scheint das Problem aber sehr stark einschränkbar zu sein. Eine total primitive Primitivstversion könnte man unter Verwendung einer Bibliothek zum Parsen von HTML (dazu gibt's auch schon viele Threads) schon in einer main-Methode mit deutlich weniger als 200 Zeilen unterkriegen.

Wenn aber der Betreiber des Webauftritts was gegen Scraper hat, kann das schnell nach hinten losgehen. Dann müssen ausgefeiltere Algorithmen her, die z.B. menschliches Surfverhalten emulieren, Bilder oder Stylesheets nachladen usw. Nötigenfalls musst du sogar einen bekannten Browser (z.B. Firefox) emulieren. Da kann es dann sein, dass du eine ganze Weile nur damit beschäftigt bist, mit Wireshark das Verhalten eines Browsers nachzuahmen. Scraping ist dahingehend also auch ein Risiko.

Ark
 

Schandro

Top Contributor
Ich würde dir Selenium empfehlen. Damit kannst du innerhalb von Java Firefox/Chrome/Internet Explorer/... fernsteuern, ihm Befehle geben und Daten auslesen, die du dann direkt in Java weiterverarbeiten kannst. Vorteil: Du brauchst dich nicht um http, javascript, cookies, ... kümmern, das wird alles vom Browser gemacht. Du brauchst nur sagen auf welche Elemente der Seite geklickt werden soll, welche URL aufgerufen werden soll usw...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
bluetrix Programmieren eines Bots für Zahlen-Brettspiel Java Basics - Anfänger-Themen 9
D Könnt ihr mir helfen beim Programmieren eines Ping Pong Spieles? Java Basics - Anfänger-Themen 9
Ruvok Programmieren eines Einheiten Konverters Java Basics - Anfänger-Themen 1
L Compiler-Fehler Problem beim Programmieren eines Kalenders (java.lang.ArrayIndexOutOfBoundsException) Java Basics - Anfänger-Themen 2
J Methoden Hilfe bei Programmieren eines Geldautomat en Java Basics - Anfänger-Themen 18
E Problem beim Programmieren eines Kartenspiels Java Basics - Anfänger-Themen 3
K Brauche Hilfe beim Programmieren eines Funktionsplotters Java Basics - Anfänger-Themen 3
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
B OOP was heißt objektorientiertes Programmieren (fragt ein absoluter Anfänger) Java Basics - Anfänger-Themen 17
laxla123 Rechteck programmieren Java Basics - Anfänger-Themen 4
A Erste Schritte Dynamische Stempel im PDF Exchange programmieren Java Basics - Anfänger-Themen 0
D Programmieren nach UML Java Basics - Anfänger-Themen 2
Y Taschenrechner programmieren Java Basics - Anfänger-Themen 3
B Überweisung programmieren Java Basics - Anfänger-Themen 7
D Ampel Programmieren die jede 10 sekunden ihre farbe wechselt Java Basics - Anfänger-Themen 6
J ArrayList add methode selbst programmieren Java Basics - Anfänger-Themen 10
00111010101 Objektorientiertes Programmieren mit Vererbung (Zahlen in Array verschwinden) Java Basics - Anfänger-Themen 3
thor_norsk Fernseher programmieren mit Java Java Basics - Anfänger-Themen 4
M Jenga Regeln Java Programmieren Java Basics - Anfänger-Themen 1
M Ressourcensparend programmieren Java Basics - Anfänger-Themen 3
brypa Wie Programmieren lernen? Java Basics - Anfänger-Themen 15
G Spielerwechsel programmieren Java Basics - Anfänger-Themen 1
J Solitär (Brettspiel) programmieren Java Basics - Anfänger-Themen 3
H Objektorientiertes Programmieren Java Basics - Anfänger-Themen 4
K 12- Stunden Konverter Programmieren Java Basics - Anfänger-Themen 1
WAB9703-04 Programm zum automatischen Ausfüllen von Formularen programmieren Java Basics - Anfänger-Themen 3
L Zahlenspiel programmieren Java Basics - Anfänger-Themen 1
TimoN11 Automat programmieren Java Basics - Anfänger-Themen 4
G Erste Schritte Array Mittelwert Methode Programmieren Java Basics - Anfänger-Themen 5
ehmo würfelspiel programmieren anfänger Java Basics - Anfänger-Themen 1
N Ufospiel programmieren Java Basics - Anfänger-Themen 13
KogoroMori21 Vorbereitung auf die Programmieren Klausur vom ersten Semester Java Basics - Anfänger-Themen 4
Drinkerbell Erste Schritte Zu blöd zum Programmieren? Java Basics - Anfänger-Themen 9
G Stack programmieren Java Basics - Anfänger-Themen 6
I Brauche Hilfe bei Objektorientiertem programmieren Java Basics - Anfänger-Themen 23
T Auf einem Schachbrett bewegen programmieren Java Basics - Anfänger-Themen 2
G Bruchrechner programmieren Java Basics - Anfänger-Themen 6
G Ufo Spiel programmieren Java Basics - Anfänger-Themen 13
D Schachbrett (8x8) programmieren Java Basics - Anfänger-Themen 3
J Spiel programmieren Java Basics - Anfänger-Themen 16
J Hilfe beim Programmieren Java Basics - Anfänger-Themen 5
S Kreisberechnung3 Buch: Programmieren lernen mit Java von Hans-Peter Habelitz Java Basics - Anfänger-Themen 39
M Quiz in Java programmieren mit Array Java Basics - Anfänger-Themen 8
S Spiel-Programmieren. Wenn ein Objekt den anderen berührt. Java Basics - Anfänger-Themen 6
K Java programmieren Java Basics - Anfänger-Themen 6
V_Fynn03 Kontrolle des Quelltextes (Bank programmieren)(GUI) Java Basics - Anfänger-Themen 6
D Was tun gegen zu komplzierten Denken beim Programmieren Java Basics - Anfänger-Themen 27
V_Fynn03 Bruchrechner programmieren (2 Klassen) Java Basics - Anfänger-Themen 9
N Ticketautomat programmieren Java Basics - Anfänger-Themen 63
M Rechner programmieren Java Basics - Anfänger-Themen 3
V_Fynn03 Java Bruchrechner programmieren Java Basics - Anfänger-Themen 13
J Java Suchfunktion Programmieren Java Basics - Anfänger-Themen 1
L Erste Schritte Bin ich "zu dumm" oder nicht geeignet zum Programmieren? Java Basics - Anfänger-Themen 3
U Ist jemad gut in programmieren (JAVA) und kann mir helfen? Java Basics - Anfänger-Themen 1
H Uhr programmieren Java Basics - Anfänger-Themen 10
T Schalter programmieren Java Basics - Anfänger-Themen 17
S Ampel Programmieren Java Basics - Anfänger-Themen 5
P Erste Schritte Probleme mit dem Programmieren Java Basics - Anfänger-Themen 12
D Richtig für Programmieren an der UNI lernen Java Basics - Anfänger-Themen 8
B Folgende Abfrage dynamisch programmieren? Java Basics - Anfänger-Themen 8
D Beim Programmieren auf die Logisch einfache Lösung kommen. Java Basics - Anfänger-Themen 17
B UML Klassen Diagramm zu Java Code Programmieren und ausführen Java Basics - Anfänger-Themen 21
steven789hjk543 Kann man mit Java und Eclipse einen Virus programmieren? Java Basics - Anfänger-Themen 13
S Spiel programmieren mit Java Java Basics - Anfänger-Themen 11
A Kalender programmieren, ich finde meinen Fehler nicht. Java Basics - Anfänger-Themen 9
S Erste Schritte Hilfe beim lernen von Programmieren Java Basics - Anfänger-Themen 2
V Zeichenkette programmieren Java Basics - Anfänger-Themen 20
O Fenster programmieren Java Basics - Anfänger-Themen 2
R Uebersichtlicher bzw. besser Programmieren Java Basics - Anfänger-Themen 13
N Dynamisches Programmieren/Fibonacci Java Basics - Anfänger-Themen 1
B Spielfiguren für ein Beute-Jägerspiel programmieren Java Basics - Anfänger-Themen 12
A Programmieren lernen Java Basics - Anfänger-Themen 28
F ArrayListe manuell programmieren? Java Basics - Anfänger-Themen 24
X Erste Schritte Einstieg ins Programmieren Java Java Basics - Anfänger-Themen 2
O Erste Schritte ln(1+x) Reihe Programmieren Java Basics - Anfänger-Themen 6
Ellachen55 Weihnachtsbaum in Eclipse programmieren Java Basics - Anfänger-Themen 6
L Klassen Geldrückgabe - Aufgabe Programmieren Java Basics - Anfänger-Themen 23
H Stern Dreieck (Buch: Grundkurs Programmieren) Java Basics - Anfänger-Themen 2
V Variablen Vorkommen programmieren Java Basics - Anfänger-Themen 18
S Dreieckssignal programmieren Java Basics - Anfänger-Themen 5
K Fehler beim Programmieren von TicTacToe Java Basics - Anfänger-Themen 12
M Spiel programmieren Java Basics - Anfänger-Themen 16
A Fenster programmieren Java Basics - Anfänger-Themen 1
V OOP Kassensystem objektorientiert programmieren Java Basics - Anfänger-Themen 15
A Erste Schritte DoodleJump programmieren: Kollisionsabfrage Java Basics - Anfänger-Themen 4
CT9288 Kleine Simulation programmieren, denkanstöße erbeten Java Basics - Anfänger-Themen 19
H Welche IDE zum Buch "Programmieren mit Java" von Reinhard Schiedermeier des Verlags Pearson Studium Java Basics - Anfänger-Themen 19
M Rekursive Methode Programmieren Java Basics - Anfänger-Themen 3
I Spielbrett programmieren: Datenstruktur Java Basics - Anfänger-Themen 3
G Rekursives Programmieren --> harmonische Reihe Java Basics - Anfänger-Themen 3
A Endlich anfangen mit Programmieren ! Java Basics - Anfänger-Themen 8
L Karawane programmieren Java Basics - Anfänger-Themen 0
kokojamboo92 Spiel programmieren Java Basics - Anfänger-Themen 1
E Mastermind programmieren, wie den falschen Platz aber richtige Farbe schecken? Java Basics - Anfänger-Themen 23
steven789hjk543 Erste Schritte java programmieren/ Schritt für Schritt Java Basics - Anfänger-Themen 14
I Spiel programmieren. Java Basics - Anfänger-Themen 16
H [Studium] Mäxchenspiel programmieren Java Basics - Anfänger-Themen 10
C BlueJ Zahlenschloss programmieren Java Basics - Anfänger-Themen 5
steven789hjk543 mit dem Smartphone java programmieren Java Basics - Anfänger-Themen 44
F Okjektorientiert programmieren Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben