J'effectue une tâche simple de téléchargement d'un fichier à l'aide de la bibliothèque de requêtes Python. J'ai cherché Stack Overflow et personne ne semblait avoir le même problème, à savoir que le fichier n'est pas reçu par le serveur:
import requests
url='http://nesssi.cacr.caltech.edu/cgi-bin/getmulticonedb_release2.cgi/post'
files={'files': open('file.txt','rb')}
values={'upload_file' : 'file.txt' , 'DB':'photcat' , 'OUT':'csv' , 'SHORT':'short'}
r=requests.post(url,files=files,data=values)
Je remplis la valeur du mot-clé 'upload_file' avec mon nom de fichier, car si je le laisse vide, il dit
Error - You must select a file to upload!
Et maintenant je reçois
File file.txt of size bytes is uploaded successfully!
Query service results: There were 0 lines.
Ce qui n'apparaît que si le fichier est vide. Je ne sais donc pas comment envoyer mon fichier avec succès. Je sais que le fichier fonctionne car si je vais sur ce site Web et que je remplis manuellement le formulaire, il renvoie une belle liste d'objets correspondants, ce que je recherche. J'apprécierais vraiment tous les indices.
Quelques autres threads liés (mais ne répondant pas à mon problème):
- Envoyer un fichier en utilisant POST à partir d'un script Python
- http://docs.python-requests.org/en/latest/user/quickstart/#response-content
- Télécharger des fichiers à l'aide de demandes et envoyer des données supplémentaires
- http://docs.python-requests.org/en/latest/user/advanced/#body-content-workflow