Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Screen Scraping Flashanwendungen
mosspower
myCSharp.de - Member

Avatar #avatar-2662.jpg


Dabei seit:
Beiträge: 452
Herkunft: Bamberg

Themenstarter:

Screen Scraping Flashanwendungen

beantworten | zitieren | melden

Hallo "Kollegen",

ich habe echt ein großes Problem für die Zukunft.
Immer mehr Anbieter im Web stellen nur noch Flash-Seiten zur Verfügung.

OK, es geht um Wettanbieter und bei Flash bin ich noch auf keine Lösung gekommen, einen Automatismus zu programmieren.

Ich muss immer sehr schnell handeln.
Bei normalem HTML / AJAX ist das kein Problem, z.B. eine gute Wettmöglichkeit ausfindig zu machen und dann auch gleich eine Wette zu kaufen (klassisches Screen Scraping) ...

nur was mache ich bei Flash.
Nun ist ja das angegebene Screen Scraping schon sehr aufwändig zu implementieren, da eine Umstellung der Website zeitaufwändige Anpassungen mit sich bringt, jedoch bei Flash kann das total ausarten.

Einzige Idee, die ich habe ist, zyklisch den Bildschrim zu photographieren, das Bild mittels OCR auslesen und dann eine Maus- und Tastatursteuerung durchführen - das ist aber alles sehr umständlich und eigentlich "völliger Blödsinn" ...

jetzt dachte ich, dass hier der ein oder andere unterwegs ist und eine Lösung präsentieren kann.
Normal ist es doch so, dass die Flashanwendung Daten (in welchem Format auch immer) an den Server sendet und Daten empfängt - damit müsste man doch was machen könnnen ... müsste doch wie SOAP funktionieren, nur dass jede Flashanwendung ihre eigene "SOAP-Schnittstelle" hat.

Ich würde mich wirklich über Anregungen und Antworten sehr freuen.

Danke schon mal für etwaige Antworten im Voraus
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo mosspower,

du lässt dich da auf ein Hase-und-Igel-Spiel ein.

Nehmen wir mal an, momentan ist die Verwendung von Flash die einige Hürde und die Daten werden in der SWF-Datei nicht besonders gesichert abgelegt bzw. von der Flash-Anwendung über eine unverschlüsselte Verbindung nachgeladen und du schaffst es daher diese Daten auszulesen (ist bestimmt trotzdem einiger Aufwand), dann muss der Anbieter nur eine zusätzliche Sicherungsebene einziehen und dein ganze Aufwand wäre für die Katz.

Ich vermute mal es geht um Arbitrage-Wetten. Da durch solche die Anbieter quasi sicher zu Verlierern werden, kannst du davon ausgehen, dass solche Sicherungsebenen früher oder später eingezogen werden.

Du musst dich also auf einen nie endenden Aufwand einstellen, gegen die steigenden Sicherungen der Anbieter anzuprogrammieren. Es fragt sich sehr, ob das den zu erwartenden Gewinn übersteigt.

herbivore
private Nachricht | Beiträge des Benutzers
Floste
myCSharp.de - Member

Avatar #avatar-2376.jpg


Dabei seit:
Beiträge: 1.130
Herkunft: Norddeutschland

beantworten | zitieren | melden

Zitat
von der Flash-Anwendung über eine unverschlüsselte Verbindung nachgeladen und du schaffst es daher diese Daten auszulesen

Dazu empfiehlt es sich, die Seiten einmal in Firefox bei aktivierem Firebug-Plugin anzuzeigen. Dann einfach gucken, was so unter Netzwerkverbindungen erscheint^^
Alternativ ist Wireshark für sowas gedacht, ist aber wesentlich komplizierter und umfangreicher.

Mein HttpSaver macht quasi sowas ähnliches, ist aber eher für Musik- und Videostreams und so gedacht.

Aber herbivore hat schon Recht mit seinen Bedenken.
Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!
private Nachricht | Beiträge des Benutzers
mosspower
myCSharp.de - Member

Avatar #avatar-2662.jpg


Dabei seit:
Beiträge: 452
Herkunft: Bamberg

Themenstarter:

beantworten | zitieren | melden

Hallo,

also, wenn die Flashanwendungen von Haus aus verschlüsselte Daten senden, dann kann ich wohl überhaupt nix machen, oder?

Es ist schon so, dass die Wettanbieter keine Teilnehmer wollen, die sich auf Arbitrage spezialisiert haben, aber die sind prozentual gesehen so in der Minderzahl, dass imo die Anbieter nicht deswegen immer mehr auf Flash ausweichen, sondern einfach nur aus dem Grund, dass die optischen Gestaltungs- und Funktionsmöglichkeiten wesentlich einfacher zu implementieren sind als z.B. mittels AJAX.

Gruß
private Nachricht | Beiträge des Benutzers
winSharp93
myCSharp.de - Experte

Avatar #avatar-2918.png


Dabei seit:
Beiträge: 5.742
Herkunft: Stuttgart

beantworten | zitieren | melden

Zitat von mosspower
also, wenn die Flashanwendungen von Haus aus verschlüsselte Daten senden, dann kann ich wohl überhaupt nix machen, oder?
Das würde ich nicht sagen - wo ein Wille ist, ist auch ein Weg
Wenn es die Lizenzbedingungen nicht verbieten, kannst du ja auch mal einen Blick auf das Flash-Applet mit einem Disassembler werfen - so kann man die Kommunikation im Normalfall sehr genau analysieren.
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 9.996

beantworten | zitieren | melden

Und ihr beiden glaubt wirklich das professionelle Wettanbieter sowas erlauben würden?
private Nachricht | Beiträge des Benutzers
mosspower
myCSharp.de - Member

Avatar #avatar-2662.jpg


Dabei seit:
Beiträge: 452
Herkunft: Bamberg

Themenstarter:

beantworten | zitieren | melden

Wie läuft das eigentlich intern technisch ab? Ich bin da (noch) nicht so tief drinnen - muss es aber für die Zukunft mir aneignen, sonst kann ich mir einen anderen Nebenjob suchen.

Mal ganz einfach gesprochen. Kann es so sein, dass das Flash-Applet unverschlüsselt Daten "anmeldet" beim Browser um diese zu versenden - der Browser verschlüsselt diese, sendet diese vie HTTPS mit POST an den Server, empfängt den Response, decryptet diesen und leitet unverschlüsselt die Daten wieder an das Flash-Applet?

So in etwa ist der Workflow?
private Nachricht | Beiträge des Benutzers
Coder007
myCSharp.de - Member



Dabei seit:
Beiträge: 1.214

beantworten | zitieren | melden

In Actionscript kann man auch direkt https Anfragen erstellen. Mit dem Browser wird das Flash Applet in der Regel wenig kommunizieren...

Https ist aber keine unüberwindbare Hürde. Auf dem Client kannst du das natürlich entschlüsseln. Nur ist es alles zusätzlicher Aufwand und für die Betreiber ist es wesentlich einfacher, eine zusätzliche Hürde einzubauen, als für dich, diese zu umgehen.
private Nachricht | Beiträge des Benutzers
mosspower
myCSharp.de - Member

Avatar #avatar-2662.jpg


Dabei seit:
Beiträge: 452
Herkunft: Bamberg

Themenstarter:

beantworten | zitieren | melden

OK, wie oben schon angesprochen, gehe ich nicht davon aus, dass die Anbieter nur deswegen immer mehr auf Flash-Anwendungen bauen, weil die sich schützen wollen vor Arbitrage-Wettern.

Es geht einfach darum, dass die mit der Zeit gehen müssen, sehr viele schöne dynamisch "Klitzerfeatures" anbieten müssen und das geht eben mittels Flash viel schneller und ist besser zu warten als via AJAX.

Habe ich es richtig verstanden, dass via ActionScript "ganz normale" Requests via HTTPS gesendet werden?
Das bedeutet, dass man solche Anwendungen auch selbst in anderer Umgebung (Programmiersprache) "umschreiben" kann und die Requests senden kann, wenn man den jeweiligen Aufbau der Requests kennt?
private Nachricht | Beiträge des Benutzers
Coder007
myCSharp.de - Member



Dabei seit:
Beiträge: 1.214

beantworten | zitieren | melden

Das geht immer, es ist auch überhaupt nicht neu. Und das wird auch immer gehen. Trotzdem können sie das relativ einfach verschleiern und es dir deutlich schwerer machen.
private Nachricht | Beiträge des Benutzers
mosspower
myCSharp.de - Member

Avatar #avatar-2662.jpg


Dabei seit:
Beiträge: 452
Herkunft: Bamberg

Themenstarter:

beantworten | zitieren | melden

OK, vielen Dank für die Erleuterungen.

Wie kann ich in die Thematik einsteigen. Wie soll ich anfangen?
Wireshark und los geht's ist zu einfach.

Jemand welche Links oder sogar Lektüre?

Gruß
private Nachricht | Beiträge des Benutzers
Floste
myCSharp.de - Member

Avatar #avatar-2376.jpg


Dabei seit:
Beiträge: 1.130
Herkunft: Norddeutschland

beantworten | zitieren | melden

Warum probierst du nicht mal meinen Vorschlag,
Zitat
die Seiten einmal in Firefox bei aktivierem Firebug-Plugin anzuzeigen.

Dann siehste, was nachgeladen wird.

Falls das nix bringt, dann lad dir das Flashteil runter und jag es durch nen flash decompiler.
Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!
private Nachricht | Beiträge des Benutzers
mosspower
myCSharp.de - Member

Avatar #avatar-2662.jpg


Dabei seit:
Beiträge: 452
Herkunft: Bamberg

Themenstarter:

beantworten | zitieren | melden

@Floste,

vielen Dank für den Tip.
es funktioniert mit Firebug und die drei bei denen ich jetzt mal nachgesehen habe, versenden alle via HTTP, also plain und der Austausch erfolgt via XML ... also für die Infos (Quoten) ... Abwicklungen dann schon via HTTPS.

Danke erst mal euch allen für die Hilfe und Hinweise
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von mosspower am .
private Nachricht | Beiträge des Benutzers
mosspower
myCSharp.de - Member

Avatar #avatar-2662.jpg


Dabei seit:
Beiträge: 452
Herkunft: Bamberg

Themenstarter:

beantworten | zitieren | melden

Nochmal gleich eine Frage an die (Flash) Experten:

Wenn ich im Firebug Netzwerkereignisse sehe, was passiert dann genau in Flash?

Es ist nämlich so, dass ich bei drei Anbietern "alles" sehe und bei einem anderen gar nix, das bedeutet, die Werte werden angepasst ohne dass im Firebug etwas erscheint.

Ist es vielleicht so, dass letztere Anwendung mittels ActionScript die Requests abfeuert und alle anderen via Applet mit Browser kommuniziert?
private Nachricht | Beiträge des Benutzers
Coder007
myCSharp.de - Member



Dabei seit:
Beiträge: 1.214

beantworten | zitieren | melden

Wenn du nicht alles siehst, was du zu sehen erwartest, nimm doch Wireshark und schau damit. Damit siehst du sicher alles.
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo mosspower,

nochmal was zur rechtlichen Seite. Es gab ja neulich ein Urteil wegen Screen Scraping bei (Billig-)Flugseiten. Dabei sind die Flugseitenbetreiber unterlegen mit der Begründung, dass die Flugsuchmaschinen die Seiten nicht vorab massenhaft abrufen und die Ergebnisse in eigenen Datenbanken speichern, um aus diesen die Anfragen ihrer Benutzer beantworten, sondern erst in dem Moment die Seiten abfragen, wo ein Benutzer eine konkrete Anfrage stellt. Wären die Suchmaschinen technisch anders ausgelegt gewesen, hätten sie insbesondere die Datenbankenbanken der Flugseiten (per Screen Scraping) systematisch ausgelesenen und kopiert, wäre das wohl ein Urheberrechtsverstoß gewesen - das gleiche würde für sicher Wettdatenbanken gelten). Die Flugseitenbetreiber wollen das Screen Scraping jetzt per AGB verbieten - und das gleiche wäre auch bei Wettanbietern denkbar oder ist vielleicht sogar schon der Fall. Das musst du unbedingt prüfen!

Insofern bewegst du dich mit deinem Vorhaben in einem rechtlichen Minenfeld. Es kommt also nicht nur auf die technische, sondern auf die rechtliche Seite an, bzw. kann und wird es von der technischer Realisierung abhängen, ob das Vorgaben legal oder auch illegal ist. Du solltest also keinesfalls einfach losprogrammieren, wie es technisch am besten ist, sondern vorher unbedingt den Rat eines (oder in diesem Fall wohl gleich mehrerer) Anwälte einholen. Das gilt sowohl für dich Programmierer als auch für deinen Auftraggeber als auch für die späteren Betreiber der Software.
Zitat
... sonst kann ich mir einen anderen Nebenjob suchen.
Das wäre vielleicht besser, denn was nützt dir ein Job, bei dem du ein paar Hunderter oder Tausender bekommst, aber später mit Schadenersatzforderungen in Millionenhöhe überzogen wirst.

herbivore
private Nachricht | Beiträge des Benutzers
Floste
myCSharp.de - Member

Avatar #avatar-2376.jpg


Dabei seit:
Beiträge: 1.130
Herkunft: Norddeutschland

beantworten | zitieren | melden

Es ist wahrscheinlich nicht so schlau, sowas in einem öffentlich anzubieten und man sollte darauf achten, auch bei den Anbietern kein Aufsehen zu erregen: Nicht zu oft/regelmäßig anfragen, keine komischen Useragents, etc...
Zitat
Wenn ich im Firebug Netzwerkereignisse sehe, was passiert dann genau in Flash?
Es macht einen Http-Request über die Api des Browsers.
Lass doch mal meinen HttpSaver nebenher laufen (Der ist übrigends für den Anbieter komplett unsichtbar, da er nichts an der Kommunikation ändert.)
Außerdem ist Wireshark durchaus zu empfehlen.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Floste am .
Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!
private Nachricht | Beiträge des Benutzers
mosspower
myCSharp.de - Member

Avatar #avatar-2662.jpg


Dabei seit:
Beiträge: 452
Herkunft: Bamberg

Themenstarter:

beantworten | zitieren | melden

Um diesen Thread nochmal aufzumachen ...

@herbivore,
es geht primär nicht darum Daten zu speichern oder ein fertiges Programm zu verkaufen, sondern lediglich darum, eine (für mich private) Plattform zu haben, in welcher alle (Live) Quoten "zusammenlaufen".

Ich habe jetzt bei allen Anbietern, die Flash-Lösung anwenden, die Daten erhalten (in der Regel geschieht hier der Datenaustausch via POX) auser bei einem, der bereitet mir echt seit mehreren Tagen Kopfzerbrechen.

Via JavaScript wird mit Flash kommuniziert und in Flash wird mittels XmlSocket eine Verbindung zu einem Push-Server aufgebaut.

Ich bekomme es einfach nicht auf die Reihe das so nachzubauen, trotzt vieler Hilfstool (Flash-Decomplier, Fire/Flashbug JavaScript-Debugger im Firefox, Wireshark, Fiddler usw.)

Hat hier jemand Erfahrung mittels sog. Push-Servern? Ich kann zwar einen "ganz normalen" POST senden (egal ob Fiddler oder via Socket), dann bekomme ich aber genau 45 Sekunden später eine Antwort und das Socket ist dicht, also die Verbindung ist geschlossen.

Ich steige nicht dahinter, was ich wann senden muss um die Daten sofort zu bekommen bei weiterhin bestehender Verbindung.
Wäre nett, wenn sich der ein oder andere hier meldet, der etwa schon ähnliche Probleme hatte.

Danke für etwaige Antworten schon einmal im Voraus!
private Nachricht | Beiträge des Benutzers