Сравнително нов съм в python и компютрите като цяло. В момента се опитвам да публикувам данни в уебсайт, а именно http://www.camp.bicnirrh.res.in/featcalc/ и изберете четири квадратчета за отметка, след като качите файл, който съдържа данните за анализ.
Досега това съм пробвал.
def encode_multipart_formdata(fields, files, data):
"""
fields is a sequence of (name, value) elements for regular form fields.
files is a sequence of (name, filename, value) elements for data to be uploaded as files
Return (content_type, body) ready for httplib.HTTP instance
"""
BOUNDARY = '-----------------------------7de18336272e32'
CRLF = '\r\n'
L = []
L.append('--' + BOUNDARY)
L.append('Content-Disposition: form-data; name="seq"')
L.append('')
L.append('--' + BOUNDARY)
L.append('Content-Disposition: form-data; name="%s"; filename="%s"' % (files[0], files[1]))
L.append('Content-Type: text/plain')
L.append('')
L.append(data)
L.append('')
for (key, value) in fields:
L.append('--' + BOUNDARY)
L.append('Content-Disposition: form-data; name="%s"' % key)
L.append('')
L.append(value)
L.append('--' + BOUNDARY + '--')
L.append('')
body = CRLF.join(L)
content_type = 'multipart/form-data; boundary=%s' % BOUNDARY
return content_type, body
За този код data е файлът, който е бил отворен, прочетен и затворен, files е името на файла и пълното име на файла - напр. ('Practice', 'Practice.txt') Това върна това, което смятах за добър формат. Но когато се опитах да публикувам шифрованите данни с помощта на urllib2, urllib2 заявка и urlopen, получих нещо, което изглеждаше като изходния код на страницата с резултати, но нямаше нито една от данните, които ми трябваха (т.е. без стойности). Опитах и това, за да видя дали ще работи.
files = {'file': ('Practice.txt', open('Practice.txt', 'rb'))}
r = requests.post(url, files=files)
r.text
Мисля, че проблемът е, че страницата изисква да поставите отметка в квадратче и нямам представа как да направя това в заявка за публикация. Мислех да опитам да използвам cgi скрипт следващия път, но буквално ми свършват идеите.
Всяка помощ ще бъде високо оценена! Благодаря ти!