DelphiKing
King with a crown
- 20 April 2006
- 6.553
- 729
Heyho,
angenommen, ich will einen News-Artikel-Crawler schreiben, welcher ständig die 10 größten Newswebseiten durchforstet und dabei zu jedem Artikel möglichst viele Informationen speichern will.
Also beispielsweise den Titel, die Anzahl Kommentare, die User-Bewertung, wie oft die News angeschaut wurden und noch ein paar Sachen mehr.
Jetzt ist es aber so, dass diese 10 Webseiten die genannten Kriterien sehr unterschiedlich ausgestaltet haben, z.B. hat Webseite A bei den Bewertungen ein "Gefällt mir"-System, wo man nur sagen kann, dass einem ein Artikel gefällt.
Webseite B hat aber ein "Finde ich gut / Finde ich schlecht"-System und Webseite C hat 1-5 Sterne, die man vergeben kann. Und eine andere Seite hat vielleicht gar keine Bewertungen.
Wie erfasse ich diese Daten jetzt trotzdem möglichst ohne Informationsverlust in einer DB? So, dass ich zumindest die Artikel innerhalb einer Plattform untereinander vergleichen kann. Natürlich sollen, wenn neue Daten erfasst werden, die alten weiterhin gespeichert werden.
Natürlich sollte das auch flexibel sein, falls eine Webseite ihr Datenformat ändert oder eine neue Webseite dazukommt.
Oder vielleicht noch irgendwas anderes, was nicht unsauber oder unperformant ist? ^^
Wenn man halt mal wirklich davon ausgeht, dass es mehrere dieser Kriterien gibt, die von Plattform zu Plattform in sehr unterschiedlichem Format sind, und man sie trotzdem erfassen will…
Und natürlich die Frage "macht das alles Sinn / ist das erlaubt" mal völlig außen vor gelassen, geht ja nur um die technische Seite ^^
LG, flo
angenommen, ich will einen News-Artikel-Crawler schreiben, welcher ständig die 10 größten Newswebseiten durchforstet und dabei zu jedem Artikel möglichst viele Informationen speichern will.
Also beispielsweise den Titel, die Anzahl Kommentare, die User-Bewertung, wie oft die News angeschaut wurden und noch ein paar Sachen mehr.
Jetzt ist es aber so, dass diese 10 Webseiten die genannten Kriterien sehr unterschiedlich ausgestaltet haben, z.B. hat Webseite A bei den Bewertungen ein "Gefällt mir"-System, wo man nur sagen kann, dass einem ein Artikel gefällt.
Webseite B hat aber ein "Finde ich gut / Finde ich schlecht"-System und Webseite C hat 1-5 Sterne, die man vergeben kann. Und eine andere Seite hat vielleicht gar keine Bewertungen.
Wie erfasse ich diese Daten jetzt trotzdem möglichst ohne Informationsverlust in einer DB? So, dass ich zumindest die Artikel innerhalb einer Plattform untereinander vergleichen kann. Natürlich sollen, wenn neue Daten erfasst werden, die alten weiterhin gespeichert werden.
Natürlich sollte das auch flexibel sein, falls eine Webseite ihr Datenformat ändert oder eine neue Webseite dazukommt.
- Für jede Newsseite eine eigene Tabelle, deren Spalten die jeweils verfügbaren Kriterien in der jeweiligen Ausprägung sind?
- Oder für alle Newsseiten die gleiche Tabelle, aber alle möglichen benötigten Spalten drin, die dann eben u.U. leer sind?
- Oder für alle die gleiche Tabelle und allgemein gehaltene Spalten, in denen die Werte dann plattformspezifisch z.B. XML-encodiert stehen?
- Oder jeden einzelnen Wert für jede einzelne Webseite z.B. XML-encodiert in eine eigene Tabellenzeile und die Trennung dann scriptseitig ("SELECT wert WHERE newsseite=1 AND typ='bewertungen'")?
Oder vielleicht noch irgendwas anderes, was nicht unsauber oder unperformant ist? ^^
Wenn man halt mal wirklich davon ausgeht, dass es mehrere dieser Kriterien gibt, die von Plattform zu Plattform in sehr unterschiedlichem Format sind, und man sie trotzdem erfassen will…
Und natürlich die Frage "macht das alles Sinn / ist das erlaubt" mal völlig außen vor gelassen, geht ja nur um die technische Seite ^^
LG, flo
