Estou executando uma tarefa simples de upload de um arquivo usando a biblioteca de solicitações Python. Pesquisei Stack Overflow e ninguém parecia ter o mesmo problema, ou seja, que o arquivo não é recebido pelo servidor:
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)
Estou preenchendo o valor da palavra-chave 'upload_file' com meu nome de arquivo, porque se eu deixar em branco, ele diz
Error - You must select a file to upload!
E agora eu consigo
File file.txt of size bytes is uploaded successfully!
Query service results: There were 0 lines.
Que só aparece se o arquivo estiver vazio. Então, estou sem saber como enviar meu arquivo com sucesso. Eu sei que o arquivo funciona porque se eu entrar neste site e preencher manualmente o formulário, ele retorna uma boa lista de objetos correspondentes, que é o que procuro. Eu realmente aprecio todas as dicas.
Alguns outros tópicos relacionados (mas não respondem ao meu problema):