Bonjour,
Je voudrais me loger sur un site web en simulant identification et password.
J'ai vu que la question a déjà été posée maintes et maintes fois, mais je ne m'en sort pas, je suis reparti d'un script (voir ci-dessous), mais en lançant le script, j'ai un message d'erreur, et j'ai du mal à concrétiser ! je suis débutant en python,
je comprends que l'erreur vient de 'predicate' mais je ne sais pas comment corriger, cela fait une semaine que je cherche dans les forums, mais sans succés. Je crois avoir compris que mechanize est le moyen le plus simple, par rapport à urlllib ou urllib2. Un peu d'aide ou une piste me serait agréable.
Je suis sur Ubuntu 12.10 et python V 2.7.6

Le script sur lequel je m'appuie:

Citation Envoyé par GnuVince Voir le message
KINENVEU m'a contacté en privé pour me demander comment faire pour se loguer à un site web. Comme ca peut être utile à plusieurs, voici un script pour se loguer sur les forums de developpez.net. Ce script requiert la librairie mechanize (sudo easy_install mechanize).

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
import mechanize
 
def find_login_form(html_form):
    return html_form.attrs['action'].startswith('login.php')
 
br = mechanize.Browser()
br.open('http://developpez.net/forums/')
br.select_form(predicate=find_login_form)
br.form.set_value('gegetrois', name='vb_login_username')
br.form.set_value('password', name='vb_login_password')
br.submit()
br.follow_link(url='http://developpez.net/forums/')
br.follow_link(url_regex=r'private.php$')
print br.title()
br.close()

Le message d'erreur :
Traceback (most recent call last):
File "/home/gerard/connect.py", line 13, in <module>
br.select_form(predicate=("find_login_form"))
File "/usr/lib/python2.7/dist-packages/mechanize/_mechanize.py", line 501, in select_form
predicate is not None and predicate(global_form):
TypeError: 'str' object is not callable