#1 Le 13/02/2012, à 13:41
[Python] Mechanize
Bonjour, je souhaiterais remplir le formulaire suivant avec le module mechanize:
http://www.intelliagence.fr/Page/Offer/SearchOffer.aspx
Pour le moment, j'ai fais ceci:
import re
import mechanize
from ClientForm import ParseResponse
import ClientForm
br = mechanize.Browser()
br.open('http://www.intelliagence.fr/Page/Offer/SearchOffer.aspx')
br.select_form(nr=0)
br.form.set_all_readonly(False)
br.form.set_value('Agronomie', name='ctl00$ctl00$ctl00$Content$OfferContent$OfferContent$OfferSearchPanel$SpecialityDList')
br.form.set_value('CDI', name='ctl00$ctl00$ctl00$Content$OfferContent$OfferContent$OfferSearchPanel$ContractDList')
br.form.set_value('France', name='ctl00$ctl00$ctl00$Content$OfferContent$OfferContent$OfferSearchPanel$CountryDList')
br.submit(name='ctl00$ctl00$ctl00$Content$OfferContent$OfferContent$OfferSearchPanel$Search')
print br.response().read()
br.close()Le problème, c'est que je n'ai pas l'impression qu'il ait pris en compte mes choix. Ce qu'il affiche, c'est la réponse par défaut, c'est-à-dire comme si je n'avais rien rentré dans les champs.
Est-ce que quelqu'un a déjà rencontré ce type de soucis?
Par avance, merci.
Mal-pensant, mais résolument linuxien.
Hors ligne
#2 Le 14/02/2012, à 12:22
Re : [Python] Mechanize
Personne n'a de réponse? Rien qu'une piste serait la bienvenue ![]()
Mal-pensant, mais résolument linuxien.
Hors ligne
#3 Le 14/02/2012, à 21:43
Re : [Python] Mechanize
Un coup de
mech-dump --forms ton_urlme semble montrer que c'est avec
ctl00$ctl00$ctl00$LoginControl$ButtonValidate=Valider (submit)
qu'il faut valider, pas avec celui que tu utilises dans br.submit.
Acer Aspire One 150 8,9 "
Norhtec avec une Clé Usb bootable http://www.norhtec.com/products/mcsr/index.html
Toshiba Satellite L750
Hors ligne
#4 Le 14/02/2012, à 23:26
Re : [Python] Mechanize
ctl00$ctl00$ctl00$LoginControl$ButtonValidate, ce serait pas plutôt pour le formulaire d'identification qui est en haut à droite sur la page?
Mal-pensant, mais résolument linuxien.
Hors ligne
#5 Le 15/02/2012, à 08:39
Re : [Python] Mechanize
$ mech-dump --forms http://www.intelliagence.fr/Page/Offer/SearchOffer.aspx | grep text
<NONAME>={2} (text)
ctl00$ctl00$ctl00$search=Tapez le mot-cl recherch (text)
ctl00$ctl00$ctl00$WhoAreYouComboBox=Qui tes vous ? (text readonly)
ctl00$ctl00$ctl00$Content$OfferContent$OfferContent$OfferSearchPanel$OfferTypeComboBox=Offre d'emploi (text readonly)
ctl00_ctl00_ctl00_Content_OfferContent_OfferContent_OfferSearchPanel_QuickSearchT_text=Recherche rapide (text)
ctl00$ctl00$ctl00$Content$OfferContent$OfferContent$OfferSearchPanel$QuickSearchT= (text)
ctl00$ctl00$ctl00$Content$OfferContent$OfferContent$OfferSearchPanel$ContractDList=Contrat (text readonly)
ctl00_ctl00_ctl00_Content_OfferContent_OfferContent_OfferSearchPanel_ReferenceT_text=Rfrence (text)
ctl00$ctl00$ctl00$Content$OfferContent$OfferContent$OfferSearchPanel$ReferenceT= (text)
ctl00$ctl00$ctl00$Content$OfferContent$OfferContent$OfferSearchPanel$JobDList=Mtier (text readonly)
ctl00$ctl00$ctl00$Content$OfferContent$OfferContent$OfferSearchPanel$CountryDList=Pays du lieu de travail (text readonly)
ctl00$ctl00$ctl00$Content$OfferContent$OfferContent$OfferSearchPanel$ExperienceDList=Niveau d'exprience (text readonly)
ctl00$ctl00$ctl00$Content$OfferContent$OfferContent$OfferSearchPanel$SpecialityDList=Spcialit (text readonly)
ctl00$ctl00$ctl00$Content$OfferContent$OfferContent$OfferSearchPanel$SalaryDList=Niveau de salaire (text readonly)
ctl00$ctl00$ctl00$Content$OfferContent$OfferContent$OfferSearchPanel$OffersSort=Dbut de parution (text readonly)
ctl00$ctl00$ctl00$Content$OfferContent$OfferContent$OfferSearchPanel$RadCBOffersPerPage=5 (text readonly)
ctl00$ctl00$ctl00$LoginControl$TBLoginValue=Nom d'utilisateur (text)
$ Tu peux peut-être essayer de sélectionner ton formulaire non par son numéro mais par son nom ?
Edit: en fait ça ne changera rien, il y a un seul formulaire
for form in br.forms():
n'en montre qu'un.
Je vais faire des essais sur un autre site.
Dernière modification par k3c (Le 15/02/2012, à 08:42)
Acer Aspire One 150 8,9 "
Norhtec avec une Clé Usb bootable http://www.norhtec.com/products/mcsr/index.html
Toshiba Satellite L750
Hors ligne
#6 Le 15/02/2012, à 12:28
Re : [Python] Mechanize
Merci k3c de te pencher sur mon problème, car depuis quelques jours, je sèche.... ![]()
Mal-pensant, mais résolument linuxien.
Hors ligne
#7 Le 17/02/2012, à 18:24
Re : [Python] Mechanize
Bon apparemment c'est lié au fait que le site est en asp.net...
Acer Aspire One 150 8,9 "
Norhtec avec une Clé Usb bootable http://www.norhtec.com/products/mcsr/index.html
Toshiba Satellite L750
Hors ligne
#8 Le 22/02/2012, à 16:23
Re : [Python] Mechanize
Cette page a du Javascript, que mechanize ne sait pas traiter, voir
http://wwwsearch.sourceforge.net/mechan … tml#script
et les options proposées.
Acer Aspire One 150 8,9 "
Norhtec avec une Clé Usb bootable http://www.norhtec.com/products/mcsr/index.html
Toshiba Satellite L750
Hors ligne