Formulare ausfüllen auf Webkit-Basis

Code-Stücke können hier veröffentlicht werden.
Antworten
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Bei PyGtkWebKit müsste es wohl ``./configure``, ``make`` und ``make install`` sein, bei jswebkit ist doch eine ``setup.py`` drin.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
snafu
User
Beiträge: 6741
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Ich bin jetzt etwas tiefer in die Materie eingestiegen (auf Webkit-GTK-Basis in C). Webkit nutzt wohl im Hintergrund eine SoupSession (gemeint ist natürlich libsoup und nicht BeautifulSoup).

Es gibt in einer aktuellen Version (die aus Debian unstable bzw dem nächsten Ubuntu -> `libwebkit-dev`) die Möglichkeit, die aktuelle Session zu erhalten (`webkit_get_default_session()`) und mit der Soup-Bibliothek weiterzuverarbeiten. Ich arbeite mich da gerade ein, weil ich darin eine hervorragende Möglichkeit sehe, einigermaßen sauber an den aktuellen Stand im Browser zu kommen.

Den umgekehrten Weg ("eigene" SoupSession in WebView ausführen) habe ich in der API nicht gefunden. Wenn ich soweit bin (das kann noch etwas dauern), werde ich die Entwickler aber eventuell mal diesbezüglich anschreiben.

Als Fernziel plane ich, `urllib2`-kompatibel zu sein. Es soll nicht die selbe API werden, aber das Modul soll dann in der Lage sein, bespielsweise einen `urllib2`-Request zu verstehen (nennen wir die Methode mal `from_urllib2()`) und durchzuführen (dabei kümmert sich Webkits (JS-)Engine um den Code) und den Response auf Wunsch wieder zurück in eine `urllib2`-Klasse zu konvertieren.

Wenn alles glatt geht, könnte man das dann prima mit `mechanize` kombinieren. :)
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

Ich glaube ich bin einfach zu doof dazu.
Ich habe dann doch noch was anderes gefunden. Mir geht es ja nur darum forms auszufüllen.
http://wwwsearch.sourceforge.net/ClientForm/

Trotzdem danke!
[b][i]ein kleines game für die die lust haben http://konaminut.mybrute.com[/i][/b]
;-)
Benutzeravatar
snafu
User
Beiträge: 6741
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Ja, falls du noch ein bißchen mehr machen willst, kannst du sogar besser auf mechanize zurückgreifen, welches ClientForm integriert und sein Projekt unter der selben Domain hat. Mir ging es vornehmlich darum, Javascript von Seiten ausführen zu können. Da ist Google natürlich kein gutes Beispiel.
Benutzeravatar
snafu
User
Beiträge: 6741
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Hier mal eine kleine Spielerei, die Zugriff auf `document.links` gibt, indem sie es einfach selbst implementiert. Derzeit noch relativ schwachsinnig, aber ein erster Schritt, um Webkits JSEngine in Verbindung mit Webseiten zu nutzen, ohne dass eine GUI laufen muss. :) (EDIT: Die LC in Zeile 15 macht man natürlich besser über einen Generator)

Das `jscore` gibt es hier.

Ich weiß jetzt nicht, wie umfangreich und performant es wäre, wenn man tatsächlich `document` komplett selbst einbaut. Praktisch wäre es ja schon irgendwie.

Fernziel soll u.a. sein, genauer herauszufinden, was einzelne Funktionen von Webseiten machen. Ich denke, es ist hiefür elementar, dass der JSCode eben auch auf Dinge wie `document` und `window` zugreifen kann.

Ich hoffe auch, dass der Autor von `jscore` noch ein paar weitere Features einbaut, damit man Dinge wie Arrays ein bißchen schöner erzeugen kann.
Antworten