2012-05-10 5 views
1

http://iedb.ebi.ac.uk/tools/ElliPro/iedb_inputでフォームを自動的に送信するスクリプトを作成する必要があります。「ステップ2へ進む」を選択し、 "pdbId"はファイルをアップロードしません。 私は次のスクリプトを書いていますが、それは私に同じページを返すことはありません。なにが問題ですか ?httplib2を使用してファイルを持たないマルチパートフォームを送信できません

import httplib2 

http = httplib2.Http() 

url = 'http://iedb.ebi.ac.uk/tools/ElliPro/iedb_input' 
body = { 'pdbFile' : '', 'protein_type':'structure','pdbId':'5LYM' } 
headers = {'Content-type': 'application/x-www-form-urlencoded','User-Agent':'Mozilla/5.0 (X11; Linux i686; rv:7.0.1) Gecko/20100101 Firefox/7.0.1'} 
response, content = http.request(url, 'POST', headers=headers, body=urllib.urlencode(body)) 
print content 

答えて

1

最後にmechanizeを使用しました。

from mechanize import Browser, _http 
br = Browser() 
br.set_handle_robots(False) 
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')] 

br.open('http://iedb.ebi.ac.uk/tools/ElliPro/iedb_input') 
br.select_form(name='predictionForm') 
br.form['protein_type'] = ['structure',] 
br.form['pdbId'] = '5LYM' 
submit_response = br.submit(name='Submit', label='Submit') 
print submit_response.read() 
関連する問題