2014-07-25 2 views
1

게시물에 대해 다른 질문이 있습니다. 이 게시물은이 질문을 사용하여 스택 오버 플로우에서 참조 된 것과 거의 동일해야합니다. 'request.post를 사용하여 파이썬을 통해 멀티 파트 양식 데이터를 게시 할 수 없습니다.'하지만 어떤 이유로 인해 작동하지 않습니다. 웹 사이트는 http://www.camp.bicnirrh.res.in/predict/입니다. 이미이 웹 사이트에 FASTA 형식의 파일을 게시하고 Python의 요청을 사용하여 'SVM'옵션을 선택하고 싶습니다. 이것은 @NorthCat가 마법처럼 일을하는, 이전에 내게 준 무엇을 기반으로합니다요청을 통한 POST 요청 (파이썬) 데이터를 반환하지 않음

가 작동하지 않습니다 때문에
import requests 
import urllib 
file={'file':(open('Bishop/newdenovo2.txt','r').read())} 
url = 'http://www.camp.bicnirrh.res.in/predict/hii.php' 
payload = {"algo[]":"svm"} 
raw = urllib.urlencode(payload) 
response = session.post(url, files=file, data=payload) 
print(response.text) 

, 나는 페이로드가 문제였다 생각했습니다. 나는 페이로드로 놀았지만, 이들 중 어떤 것도 작동시키지 못합니다.

payload = {'S1':str(data), 'filename':'', 'algo[]':'svm'} # where I tried just reading the file in, called 'data' 
payload = {'svm':'svm'} # not actually in the headers, but I tried this too) 
payload = {'S1': '', 'algo[]':'svm', 'B1': 'Submit'} 

이 페이로드 중 데이터가 없습니다.

도움을 주시면 감사하겠습니다. 정말 고마워!

+0

'개방 ('주교/newdenovo2.txt', 'R')를 대체합니까 (읽기)''개방 ('주교/newdenovo2.txt와 함께. ','r ')'도움이 필요하십니까? – alecxe

답변

1

당신은, "userfile로"에 파일 게시 변수 이름을 설정합니다 read()이 불필요하다고 즉

file={'userfile':(open('Bishop/newdenovo2.txt','r').read())} 

주의가 필요하지만, 이후의 파일 업로드를 방지하지 않습니다. 여기 당신을 위해 일해야 할 몇 가지 코드는 다음과 같습니다

import requests 

session = requests.session() 
response = session.post('http://www.camp.bicnirrh.res.in/predict/hii.php', 
       files={'userfile': ('fasta.txt', open('fasta.txt'), 'text/plain')}, 
       data={'algo[]':'svm'}) 

response.text는 파일에 저장하고 브라우저에서 보거나 Beautiful Soup 같은 것을 함께 그 결과를 분석 및 추출의 HTML 결과가 포함되어 있습니다.

요청시 파일의 MIME 유형을 "text/plain"으로 지정했습니다. 이것은 필수는 아니지만 문서로 사용되며 수신 서버에 도움이 될 수 있습니다.

fasta.txt 파일의 내용은 다음과 같습니다

>24.6jsd2.Tut 
GGTGTTGATCATGGCTCAGGACAAACGCTGGCGGCGTGCTTAATACATGCAAGTCGAACGGGCTACCTTCGGGTAGCTAGTGGCGGACGGGTGAGTAACACGTAGGTTTTCTGCCCAATAGTGGGGAATAACAGCTCGAAAGAGTTGCTAATACCGCATAAGCTCTCTTGCGTGGGCAGGAGAGGAAACCCCAGGAGCAATTCTGGGGGCTATAGGAGGAGCCTGCGGCGGATTAGCTAGATGGTGGGGTAAAGGCCTACCATGGCGACGATCCGTAGCTGGTCTGAGAGGACGGCCAGCCACACTGGGACTGAGACACGGCCCAGACTCCTACGGGAGGCAGCAGTAAGGAATATTCCACAATGGCCGAAAGCGTGATGGAGCGAAACCGCGTGCGGGAGGAAGCCTTTCGGGGTGTAAACCGCTTTTAGGGGAGATGAAACGCCACCGTAAGGTGGCTAAGACAGTACCCCCTGAATAAGCATCGGCTAACTACGTGCCAGCAGCCGCGGTAATACGTAGGATGCAAGCGTTGTCCGGATTTACTGGGCGTAAAGCGCGCGCAGGCGGCAGGTTAAGTAAGGTGTGAAATCTCCCTGCTCAACGGGGAGGGTGCACTCCAGACTGACCAGCTAGAGGACGGTAGAGGGTGGTGGAATTGCTGGTGTAGCGGTGAAATGCGTAGAGATCAGCAGGAACACCCGTGGCGAAGGCGGCCACCTGGGCCGTACCTGACGCTGAGGCGCGAAGGCTAGGGGAGCGAACGGGATTAGATACCCCGGTAGTCCTAGCAGTAAACGATGTCCACTAGGTGTGGGGGGTTGTTGACCCCTTCCGTGCCGAAGCCAACGCATTAAGTGGACCGCCTGGGGAGTACGGTCGCAAGACTAAAACTCAAAGGAATTGACGGGGACCCGCACAAGCAGCGGAGCGTGTGGTTTAATTCGATGCGACGCGAAGAACCTTACCTGGGCTTGACATGCTATCGCAACACCCTGAAAGGGGTGCCTCCTTCGGGACGGTAGCACAGATGCTGCATGGCTGTCGTCAGCTCGTGTCGTGAGATGTTGGGTTAAGTCCCGCAACGAGCGCAACCCCTGTCCTTAGTTGTATATCTAAGGAGACTGCCGGAGACAAACCGGAGGAAGGTGGGGATGACGTCAAGTCAGCATGGCTCTTACGTCCAGGGCTACACATACGCTACAATGGCCGTTACAGTGAGATGCCACACCGCGAGGTGGAGCAGATCTCCAAAGGCGGCCTCAGTTCAGATTGCACTCTGCAACCCGAGTGCATGAAGTCGGAGTTGCTAGTAACCGCGTGTCAGCATAGCGCGGTGAATATGTTCCCGGGTCTTGTACACACCGCCCGTCACGTCATGGGAGCCGGCAACACTTCGAGTCCGTGAGCTAACCCCCCCTTTCGAGGGTGTGGGAGGCAGCGGCCGAGGGTGGGGCTGGTGACTGGGACGAAGTCGTAACAAGGT 
+0

정말 고마워요! – Shay

관련 문제