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

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Itsjustme
User
Beiträge: 13
Registriert: Mittwoch 5. März 2008, 16:40
Wohnort: Köln
Kontaktdaten:

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
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

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...
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
Itsjustme
User
Beiträge: 13
Registriert: Mittwoch 5. März 2008, 16:40
Wohnort: Köln
Kontaktdaten:

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?
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Öhm. Sicher. Will man aber nicht tun :D
http://wwwsearch.sourceforge.net/ClientForm/
Das wäre eher passend.
Benutzeravatar
fe
User
Beiträge: 11
Registriert: Freitag 7. September 2007, 15:29

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
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ich würde da gleich mechanize verwenden oder das auch noch mit Twill kombinieren.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Itsjustme
User
Beiträge: 13
Registriert: Mittwoch 5. März 2008, 16:40
Wohnort: Köln
Kontaktdaten:

Ah super danke da habe ich endlich mal einen anfang werde mich dann mal einarbeiten :)

Mfg Itsjustme
Benutzeravatar
fe
User
Beiträge: 11
Registriert: Freitag 7. September 2007, 15:29

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
Itsjustme
User
Beiträge: 13
Registriert: Mittwoch 5. März 2008, 16:40
Wohnort: Köln
Kontaktdaten:

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
Jan-Peer
User
Beiträge: 166
Registriert: Dienstag 2. Oktober 2007, 10:55

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.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ich versteh nicht, was heute alle gegen ``mechanize.Browser()`` haben, dass sie entweder mechanize als urllib verwenden oder nur ClientForm nutzen....
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

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.
Itsjustme
User
Beiträge: 13
Registriert: Mittwoch 5. März 2008, 16:40
Wohnort: Köln
Kontaktdaten:

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]
Itsjustme
User
Beiträge: 13
Registriert: Mittwoch 5. März 2008, 16:40
Wohnort: Köln
Kontaktdaten:

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
Antworten