Seite 1 von 1

Wie fang ich an? Welche Module? ist es möglich?

Verfasst: Freitag 14. März 2008, 02:36
von Itsjustme
Hi erstmal :)
Also ich habe mit python mitlerweile schon einen " Jappy Bot " Programmiert

Ich erläuter mal kurz Jappy.de ist eine internet community wo man sich ggn seitig gästebuch einträge machen kann.... der bot liest also eine .txt aus mit den benutzer und macht denen gästebucheinträge...


allerdings läuft dieser bot über den browser dh wenn er läuft tabt er sich rum und man darf nichts am pc drücken....

Ich würde das jetzt gerne so umschreiben das er komplett im hintergrund läuft aber ich weiß garnicht welche module.... ich dafür brauche ( ist ein hohes ziel ich weiß) aber wenn man nie mit was schwerem anfängt macht mans nie^^

Also folgende fragen:
-Ist das in Python überhaupt möglich?
-Welche Module brauche ich?
-Gibt es Tutorials o. ähnliches für solche sachen?
-Wo kann man sich da gut einlesen ?

brauche halt einfach mal so nen start weiß garnicht wo ich anfangen soll da ich keine ahnung habe wie ich im hintergrund auf den browser zugreife...

wäre echt super falls mir jemand helfen könnte !!!

Danke schonmal
Mfg. Itsjustme

Verfasst: Freitag 14. März 2008, 02:51
von nkoehring
Hmm.. so richtig wirklich habe ich noch nicht verstehen koennen, was genau du machen willst. Aber es ist problemlos moeglich in Python HTML-Seiten zu laden und Content ueber das HTTP-Protokol zu posten ohne dafuer einen Browser zu verwenden...

Verfasst: Freitag 14. März 2008, 02:55
von Itsjustme
also ich will praktisch daten auf internetseiten ausfüllen ohne das sie offen sind also z.b.:

1. auf www.jappy.de gehen

2. einloggen mit Benutzername / Passwort

3. www.jappy.de/user/(Benutzername/gb/neu öffnen

4. da in ein feld eine nachricht schreiben und abschicken

geht das alles über das HTTP modul?

Verfasst: Freitag 14. März 2008, 09:30
von audax
Öhm. Sicher. Will man aber nicht tun :D
http://wwwsearch.sourceforge.net/ClientForm/
Das wäre eher passend.

Verfasst: Freitag 14. März 2008, 14:50
von fe
audax hat geschrieben:Öhm. Sicher. Will man aber nicht tun :D
http://wwwsearch.sourceforge.net/ClientForm/
Das wäre eher passend.
Bin auch gerade dabei mit der ClientForm zu experimentieren. Gibt es dazu noch eine bessere Dokumentation? Irgendwie werde ich aus dem Beispiel dort nich so schlau...

Grüße

Verfasst: Freitag 14. März 2008, 14:54
von Leonidas
Ich würde da gleich mechanize verwenden oder das auch noch mit Twill kombinieren.

Verfasst: Freitag 14. März 2008, 17:06
von Itsjustme
Ah super danke da habe ich endlich mal einen anfang werde mich dann mal einarbeiten :)

Mfg Itsjustme

Verfasst: Samstag 15. März 2008, 13:50
von fe
Ich habe eine Frage zu Twill:

Wenn ich mit showforms() die Seite auslese, wie greife ich dann auf die Liste zu? Also wie ist der Name der Liste? Dass es mit [X] geht ist klar, nur brauch ich den Namen... :)

Grüße

Verfasst: Mittwoch 9. April 2008, 14:57
von Itsjustme
Hallo,
ich habe mich jetzt mal ein bisschen eingelesen in mechanize.... und habe mal versucht ein login script auf jappy.de umzuschreiben und soweit bin ich jetzt gekommen aber irgendwie funktioniert es nicht. in der output html is einfach nur die startseite (www.jappy.de)

Code: Alles auswählen

###!/usr/bin/env python
### -*- coding: iso-8859-15 -*-

import mechanize
import urllib

# Login
loginurl = "http://www.jappy.de/start"
logindata = urllib.urlencode(
    {
        "login[u]": "BENUTZERNAME",
        "login[p]": "PASSWORT",
        "Submit": "login",
        "<None>":"[*on]",
       
    }
)
response = mechanize.urlopen(loginurl, logindata)
response.read() # wichtig

##posteingangurl = "http://www.jappy.de/"
##response = mechanize.urlopen(posteingangurl)
#schreibe den htmloutput in eine Datei,
#damit man das Ergebniss anschauen kann
f = file('output.html','w')
f.write(response.read())
f.close() 
wäre nett wenn mir einer sagen könnte wo mein fehler liegt vermute das ich den code oder so falsch "interpretiert " habe aber weiß echt nichtmehr weiter ...

mfg Itsjustme

Verfasst: Mittwoch 9. April 2008, 15:21
von Jan-Peer
Du verwendest zwei Mal 'response.read()' - ich vermute mal ganz stark, daß nach dem ersten Mal die Flasche bzw. der Puffer oder was auch immer 'leer' ist. Probier das mal aus und sag uns Bescheid, ob es daran lag.

Verfasst: Mittwoch 9. April 2008, 15:31
von Leonidas
Ich versteh nicht, was heute alle gegen ``mechanize.Browser()`` haben, dass sie entweder mechanize als urllib verwenden oder nur ClientForm nutzen....

Verfasst: Mittwoch 9. April 2008, 16:58
von BlackVivi
Leonidas hat geschrieben:Ich versteh nicht, was heute alle gegen ``mechanize.Browser()`` haben, dass sie entweder mechanize als urllib verwenden oder nur ClientForm nutzen....
Frag ich mich auch. Hab damals'n Skript zum verschicken von PNs in phpbb Foren geschrieben, ging mit .browser() genial.

Verfasst: Freitag 11. April 2008, 08:36
von Itsjustme
Jan-Peer hat geschrieben:Du verwendest zwei Mal 'response.read()' - ich vermute mal ganz stark, daß nach dem ersten Mal die Flasche bzw. der Puffer oder was auch immer 'leer' ist. Probier das mal aus und sag uns Bescheid, ob es daran lag.
hmm habs mal ausprobiert klappt aber immernochnicht

Code: Alles auswählen

###!/usr/bin/env python
### -*- coding: iso-8859-15 -*-

import mechanize
import urllib

# Login
loginurl = "http://www.jappy.de/start"
logindata = urllib.urlencode(
    {
        "login[u]": "BENUTZERNAME",
        "login[p]": "PASSWORT",
        "Submit": "login",
        "<None>":"[*on]",


       
    }
)
response = mechanize.urlopen(loginurl, logindata)
#response.read() # wichtig

##posteingangurl = "http://www.jappy.de/"
##response = mechanize.urlopen(posteingangurl)
#schreibe den htmloutput in eine Datei,
#damit man das Ergebniss anschauen kann
f = file('output.html','w')
f.write(response.read())
f.close()
die output datei sieht so aus wie die ganz normale startseite (www.jappy.de)
ich glaube der benutzername und das passwort wird irgendwie nicht richtig übermittelt :S

sind die befehle falsch ausm quelltext gelesen? oder liegtdas daran das die adresse vlt falsch ist ( da ich bei anderen nur sowas wie : www.helloworld.de/passwort.php finde aber bei jappy ist so ein protokoll nicht zu finden -.-

mfg itsjustme
[/url]

Verfasst: Freitag 11. April 2008, 08:37
von Itsjustme
Leonidas hat geschrieben:Ich versteh nicht, was heute alle gegen ``mechanize.Browser()`` haben, dass sie entweder mechanize als urllib verwenden oder nur ClientForm nutzen....
habe einfach das erste verwendet was ich gefunden habe :)
werde mir jez mal mechanize.Browser() angucken danke für den tipp!


mfg Itsjustme