HTML von bestimmter URL downloaden - cURL



  • Hallo,

    hab das ganze Wochenende vor dem PC verbracht um eine Möglichkeit zu finden HTML code von bestimmten URLs mit c++ herunter zu laden, leider ohne Erfolg.

    Aktuell verwende ich curl, damit kann man zwar HTML code downloaden, jedoch kommt es sehr schnell, ca nach 20-30 DLs dazu das man von dem Server geblockt wird.

    Angestrebt sind ca. 8000 URLs die aktuell über eine Schleife mit curl abgefragt und Analysiert werden.

    Es geht darum Produktdaten im Internet ausfindig zu machen und eine Datenbank aktuell zu halten. Nach meinem aktuellen Kenntnisstand sollte dies Rechtlich in Ordnung sein. Das Programm soll mehere Stunden oder Tage laufen, so das die angestrebten Server durch die vielen Anfragen nicht überdurchschnittlich ausgelastet werden.

    Über Tipps wie das ganze um zu setzen ist würde ich mich sehr freuen.



  • Und warum möchtest du nicht bei cURL bleiben?



  • Bleiben würde ich sehr gerne bei cURL, der dazugehörige Code ist fertig und funktioniert soweit ganz gut.

    Es kommt nur leider zu den Bans, auch wenn ich nach nach jeder request einen Timeout von z.B. 10 Sekunden einbaue, deshalb die bitte um Hilfe.

    Evtl. kennt jemand eine andere Möglichkeit ?

    Was ich auch versucht habe ist das ganze mit HTTRACK zu realisieren, doch auch hier kommt es nach ca. 50 Links zum Ban.



  • Aber der Server blockiert ja, das kannst du nicht einfach umgehen, indem du den Client änderst. Das ist ja ein anderes Stück Software.



  • Es muss eine Möglichkeit geben auch mit cURL mehr als 20-30 requests ohne Ban auszuführen. Das witzige ist das mein Programm geblockt wird, ich aber über einen normalen Browser die zuvor mit dem Programm via cURL geparste URL aufrufen kann.

    Das sieht für mich so aus als ob der Server welcher das Programm bannt hier sieht das es ein cURL Programm und kein normaler Browser ist. Interessant wäre es wenn man das Programm aussehen lassen könnte wie ein normaler Browser, bin gerade dabei im Internet eine Lösung zu suchen...

    Gerade nochmal versucht mit einem Timeout von einer Minute zwischen den Anfragen, mehr als 30-35 lässt der Server nicht zu.



  • Erstmal Entschuldigung für den Doppelpost, kann den letzten Beitrag leider nicht Editieren.

    Problem gelöst, ich hatte einen Fehler im Code wodurch es nach einer bestimmten Anzahl an Durchläufen zum Abbruch kam. Nun läuft das Programm mit einem Timeout von 4-6 Sekunden zwischen den anfragen und die IP wird erst nach ca. 500 - 700 anfragen gebannt. Das ist perfekt, mit einem Timeout von 20 Sekunden sollte das Programm seine Arbeit ohne Ban verrichten.

    Vielen Dank theta das du mich indirekt mit deinem Beitrag...

    theta schrieb:

    Aber der Server blockiert ja, das kannst du nicht einfach umgehen, indem du den Client änderst. Das ist ja ein anderes Stück Software.

    ...auf einen möglichen Fehler im Code aufmerksam gemacht hast 🙂

    Die Erkenntniss kam als mein fehlerhaftes Programm, so glaubte ich geblockt wurde, aber mein Browser einwandfrei die URL aufrufen konnte 👍


Anmelden zum Antworten