Bonjour, je souhaiterai uploader des documents sur un site directement avec un script en python. pour celà j'ai trouvé ceci : http://docs.python-requests.org/en/l...er/quickstart/

J'ai déjà effectué quelques tests et j'arrive a me connecter avec mes identifiants cependant quand j'essai d'upload c'est la cata. j'ai deux fichiers a envoyer, puis des valeurs. (sur la version web, sa correspond à des selecteurs.)



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
17
18
19
20
21
 
identifiant = {'username':'admin', 'password':''}
 
with session() as c:
      c.post(connectUrl, data=identifiant)
      files = {
            'liste': open('bilan21.txt', 'rb'),
            'old_list': open('bilan12.txt', 'rb')
            'download': open('bilan.torrent', 'rb')
      }
      #
      uploadData = {
            'name': 'Liste de 2014',
            'type': '714',
            'annee': '2014'
      }
      request =  c.post(uploadUrl, files=files, data=uploadData)
 
      print(request.text)
      print(request.headers)
      print(request)
J'ai en retour le code 200 (qui veut dire que tout est ok. Je crois). Quand un upload s'est bien passé, la page m'affiche que tout s'est bien passé et lorsqu'ici j'affiche request.text il m'affiche la page avec le formulaire pour upload.

Je ne comprend pas pourquoi, pouvez vous m'aider ? Merci


EDIT:


j'ai essayé avec http://toolbelt.readthedocs.org/en/latest/user.html


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
m = MultipartEncoder(
      fields={
            'torrent': ('torrent', open('bilan.torrent', 'rb'), 'application/x-bittorrent'), 
            'name': str.encode('bilan')
      }
)
u = request.post(uploadUrl, data=m, headers={'Content-Type': m.content_type})
print(u.text)
print(u.headers)
print(u)
mais j'ai cette erreur:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x95 in position 366: invalid start byte