Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Daten auslesen aus Webseite (https://www.delphipraxis.net/144154-daten-auslesen-aus-webseite.html)

MaToBe 1. Dez 2009 12:43


Daten auslesen aus Webseite
 
Guten Tag,

ich suche siet etwa 1 Monat einen Gebrauchtwagen auf mobile.de und autoscaut24.de. Ich führe immer den gleichen Suchauftrag und hoffe das mir irgendwann mal ein Auto auffällt das ich mir leisten kann und in meiner Nähe ist.

Nun ist es ziemlich nervig, etwa alle 2 Tage um die 800 Autos zu überfliegen um zu sehen ob etwas dabei ist / bzw. ob neue Autos dazugekommen sind, die meinen speziellen Suchanforderungen wie zb. 20km Umkreis, Baujahr < 2001 usw. entsprechen.

Kann man nicht irgendwie ein Programm schreiben, dass automatisch solch einen Suchauftrag durchführt, die Suchergebnisse dann abgleicht mit den Ergebnissen von gestern und dir die neuen Einträge letzt endlich ausgibt?

Über die Funktion und was das Programm alles können soll kann man sich dann ja noch gedanken machen... aber ist sowas prinzipiell überhaupt möglich, die daten in geeigneter weise irgendwie von der webseite zu bekommen, ohne dass man jetzt zugriff auf deren interne datenbank hat?

MFG MaToBe

PS: Die Angebotenen E-Mail Suchaufträge bei den beiden Webseiten sind nicht sehr durchdachte, da sie einem sehr unübersichtlich auch immer wieder Autos anzeigen, die man längst schon 3 mal gesehn hat und man nicht kaufen will.

sirius 1. Dez 2009 12:49

Re: Daten auslesen aus Webseite
 
Wie ich diesen Typus Seite so kenne (allerdings nicht von dieser), kann man sich das automatisch vom Server dort organisieren lassen. Man muss sich nur einloggen und entsprechendes Kästchen anhaken.
Ok, Edit sagt es.

Also, ja, man kann das auch mit Delphi machen. Seite anfordern (idhttp oder XMLHttpRequest) und Antwort durchparsen.
Letzteres dürfte der schwierigere Teil werden.

Balu der Bär 1. Dez 2009 14:28

Re: Daten auslesen aus Webseite
 
Ich würde vorher sehr genau prüfen ob solche Crawler den geduldet werden, ich denke eher nein.

helgew 1. Dez 2009 14:55

Re: Daten auslesen aus Webseite
 
Liste der Anhänge anzeigen (Anzahl: 1)
Wenn die Seite es ermöglicht, sämtliche neuen angebote per email zu erhalten, wäre das der bessere Weg, da die Informationen dort schon heruntergekocht sind und du dann die in der email hoffentlich enthaltenen direktlinks gezielt abklappern kannst (Wie das geht, ist klar? Ansonsten hab ich dir mal ein Codehäppchen angehängt, mit dem du loslegen kannst)

MaToBe 1. Dez 2009 18:49

Re: Daten auslesen aus Webseite
 
ich muss ehrlich sagen das ich mehr oder weniger anfänger bin und das projekt wahrscheinlich viel zu groß für mich ist im moment, aber ich wills mal versuchen.
ich habe diese Funktion hier gefunden:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var aNode,aNode2 : Olevariant;
   r,c,z,z2 : Integer;
begin
  //item(6) = 7te Tabelle in der Webseite
  aNode := WebBrowser1.OleObject.Document.all.tags('table').Item(1);
  r := aNode.all.tags('tr').Length;//Zeilen feststellen
  StringGrid1.RowCount := r;
  for z := 0 to r-1 do
    begin
    aNode2 := aNode.all.tags('tr').Item(z);
    c := aNode2.all.tags('th').Length;
    if c > 0 then
      begin
      if c > StringGrid1.ColCount then
        StringGrid1.ColCount := c;
      for z2 := 0 to c-1 do
        StringGrid1.Cells[z2,z] := aNode2.all.tags('th').Item(z2).innerText;
      end;
    c := aNode2.all.tags('td').Length;
    if c > 0 then
      begin
      if c > StringGrid1.ColCount then
        StringGrid1.ColCount := c;
      for z2 := 0 to c-1 do
        StringGrid1.Cells[z2,z] := aNode2.all.tags('td').Item(z2).innerText;
      end;
    end;
end;
und sie klappt eigentlich auch sehr gut, nur dass mir die ausgabe in ein stringgrit nicht gefällt, da es schwer zu sortieren ist, keine bilder angezegit werden können und ich eher so eine art liste bevorzugen würde. am Besten sogar noch eine ausklappbare... Was für eine Komponente würdet ihr mir Raten?


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz