mikrocontroller.net

Forum: PC-Programmierung Internet-Programmierung, wie heissen solche Programme?


Autor: Jürgen W. (lovos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe einfache Programme geschrieben um "Daten-Kommunikation" im 
Internet zu automatisieren. Die Programmiersprache spielt weniger eine 
Rolle, ich habe Java verwendet.
Z.B. um eine bestimmte Uhrzeit loggt sich ein Programm unter einen 
bestimmten Mitgliedsname bei Ebay ein und gibt zu einer bestimmten 
Auktion ein Gebot ab.

Ich meine nicht den Low-Level Datenverkehr wie Socket-Programmierung, 
oder SSL-Zertifikate, sondern mehr z.B. das Handlen von Redirekts, 
Html-Scannen, Ausfuellen von <Form>-ularen, ...
Vieles macht wget schon (einfache Redirects, Verwalten von 
Session-Cookies, SSL).

Manchmal sind solche Programme einfach (z.B. Ebay).
Wenn die Html-Seiten viel Javascript enthalten, werden sie kompliziert. 
Man muesste JS parsen.

Gibt es einen Namen fuer solche Programme (Robots?), gibt es 
irgendwelche Freeware, Opensource von Programm-Bausteinen, um solche 
"Internet-Automatisierungen" zu programmieren?

Leider weiss ich nicht unter welchen Namen/Begriffen ich da googeln 
soll.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gibt schon bibliotheken: mechanize: "stateful programmatic web browsing"
stichworte: spider, robot, automator, browser, screen-scraper

Autor: Jürgen W. (lovos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke fuer die Vorschlaege.

Die einzige unueberwindbare Schwierigkeit erscheint mir dennoch 
Javascript.
Einfache Sachen wie
top.location.hr*f=new.url.de
oder
window.location.hr*f=new.url.de

kann meine Software zwar parsen, aber bei Sachen wie
    <script language="JavaScript" type="text/javascript">
      document.forms['bootOptions'].action = document.forms['bootOptions'].action + '?' + document.location.search.replace(/[?&](ibvc|imfl)=\d+/g, '').replace(/^[?&]/g, '');
      if (document.location.search.length > 0) {
        var bootOpts = document.location.search.replace(/[?&](ibvc|imfl)=\d+/g, '').replace(/^[?&]/g, '').split('&');
        for (var i = 0; i < bootOpts.length; i++) {
          var parts = bootOpts[i].split('=');
          var node = document.createElement('input');
          node.name = parts[0];
          node.type = 'hidden';
          node.value = unescape(parts[1]);
          document.forms['bootOptions'].appendChild(node);
        }
      }
    </script>

sehe ich alt aus.

Autor: P. S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Am weitesten kommst du wahrscheinlich, wenn du dir eine der verfuegbaren 
Renderingengines nimmst (die grafische Ausgabe natuerlich weglaesst) und 
die entstehende Dokumentstruktur auswertest.

Autor: Stephan M. (stephanm)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jürgen G. schrieb:
> Leider weiss ich nicht unter welchen Namen/Begriffen ich da googeln
> soll.

Google mal nach Selenium - oder einfach http://seleniumhq.org :-)

Mittels Selenium kannst Du einen Browser "fernsteuern". Die Steuerung 
kann über verschiedene Programmiersprachen erfolgen (z.B. JavaScript, 
Java, PHP). Selenium wird i.A. zum automatisiierten Testing von 
Web-Applilationen eingesetzt und simuliert reale 
Benutzer<->Browser-Interaktion. Da Selenium direkt mit dem Browser 
interagiert (vereinfacht gesagt), stehen Dir fast alle Möglichkeiten zur 
Verfügung, die ein realer Browser bietet, z.B. Eingabe von Texten in 
Eingabezeilen, Clicks auf Buttons, Page reloads, ... JavaScript wird 
dabei natürlich auch wie gewohnt vom Browser ausgeführt :-)

Falls ich Dich richtig verstanden habe ist das genau das was Du suchst. 
Ich habe ein bisschen Erfahrung mit dem Ding, bei Interesse einfach 
Nachfragen. Ansonsten - nix für ungut, mag sein dass ich Dich falsch 
verstanden habe.

Liebe Grüße, Stephan.

Autor: Q9 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt eine Javascript engine/bibliothek, ich weiß aber nicht mehr wie 
die heißt. Bei python mechanize hatte ich auch was zur JavaScript 
Ausführung gesehen.

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Q9: So einen hilfreichen Beitrag habe ich schon lang nicht mehr 
gesehen (ich weiss aber nicht mehr wo...!!)

Autor: Q9 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: P. S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klaus schrieb:
> @ Q9: So einen hilfreichen Beitrag habe ich schon lang nicht mehr
> gesehen (ich weiss aber nicht mehr wo...!!)

So weiss er wenigstens, dass es das gibt, was er braucht. Von deinem 
Beitrag dagegen hat er null.

Gutes Stichwort fuer Javascript ist uebrigens auch "Ecmascript".

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Peter Stegemann (pst): Ja eben, "dass es das gibt". Aber von "was er 
braucht" sehe ich nichts. Er sagt einfach, dass es eine Java 
engine/bibliothek gibt...
OK, ich bin wieder ruhig, aber das wollte ich noch los werden ;)

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jürgen G. schrieb:
> Gibt es einen Namen fuer solche Programme (Robots?), gibt es
> irgendwelche Freeware, Opensource von Programm-Bausteinen, um solche
> "Internet-Automatisierungen" zu programmieren?

Sniper

Ein bewährtes Teil in dieser Sparte ist Biet-O-Matic.

> Leider weiss ich nicht unter welchen Namen/Begriffen ich da googeln
> soll.

Googel mal nach

    ebay+sniper

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Dr. G. Reed (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau Dir vielleicht auch mal DejaClick an, das kann die Bedienung von 
Webseiten aufzeichen und automatisiert wiedergeben.
Ist ein FireFox Plugin
Vielleicht kann man das ja auch zeitgesteuert hinkriegen...

Autor: Jürgen W. (lovos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@stephanm

Danke fuer deinen Hinweis.
Richtig, ein automatischer Browser wuerde schon das machen, was ich 
will. Er kann Javascript interpretieren, Dateien abspeichern, downloads, 
...
Nachteilig bei dieser Sache ist, dass das Layout von Seiten oft aendern 
und da muss man die Click-Koordinaten nachziehen. Auch kann er nicht im 
Hintergrund laufen, da er Browser immer den (Eingabe-)Focus braucht.
Aber es ist zumindestens etwas.



Auch die anderen Sachen sind interessante Tools, ich bin immer wieder 
erstaunt.

bei
http://de.wikipedia.org/wiki/Greasemonkey
sehe ich
>viele Arten von Internetwerbung entfernen

Das waere wirklich was ganz tolles, wenn auch nicht mein 
Ursprungsanliegen.

Autor: Jürgen W. (lovos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt ein Tool,

ltfx-0.1.6.tar.gz
http://sourceforge.net/projects/ltfx
LTFX - Linux Test For X. LTFX is a "script" based X-Windows GUI 
automation tool. Its primary purpose is to help assist with creating 
automated tests in the X environment by driving the X interface.

Damit kann man eine beliebiges X-Oberflaeche steuern (Eingaben machen, 
Menues aufrufen). Das ginge auch mit einem Browser, verlangt aber viel 
Arbeit.

Autor: Jürgen W. (lovos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Q9 schrieb:
> http://www.google.de/search?q=Javascript+engine
> -> http://www.mozilla.org/js/spidermonkey/

Habe libmozjs-dev auf mein Debian System installiert, ein kleines 
Prograemmchen geschrieben, was ein Demo Javascript ausfuehrt.
Das Paket ist super.
Allerdings muss ich noch die DOM-Routinen schreiben, NUR der 
JS-Interpreter reicht nicht. Aber das geht in die richtige Richtung.

Autor: Stephan M. (stephanm)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Nachteilig bei dieser Sache ist, dass das Layout von Seiten oft aendern
> und da muss man die Click-Koordinaten nachziehen.

Selenium arbeitet nicht mit Koordinaten. Um einen Click auf einen 
Button zu simulieren musst Du den Button entweder über seine ID oder 
z.B. einen XPath-Ausdruck referenzieren. Wo der Button dann sitzt ist 
Selenium völig egal. Geeignete XPath-Ausdrücke für vorhandene Controls 
lassen sich i.A. leicht mit entsprechenden Firefox-Plugins generieren.

Liebe Grüße,

Stephan

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.