Форум сайта python.su
Помогите разобраться в некоторых вопросах касательно загрузки файлов на сервер.
1) Обменник - rghost
• В начале попробовал залить файл с помощью обработки форм в Grab, все получилось -
g = Grab()
g.setup(log_file='C:\\Python27\\logging\\res.html')
g.go('http://rghost.ru/')
g.choose_form(1)
g.set_input('file', UploadFile('C:\\Arbitraje\\vkontakte\\ART\\str.jpg'))
g.submit()
g.response.url # 'http://rghost.net/41181803'
g = Grab()
g.setup(log_file='C:\\Python27\\logging\\res.html')
g.go('http://rghost.ru/')
g.response.url # Почему то меня перекинет на .net домен, ну ладно - 'http://rghost.net/'
url = re.findall(r"action=\"(http.+?)\"\senctype=\"mul", g.response.body, re.S)[0] # Выдираем сервер для заливки файла, тут url = 'http://pion.rghost.net/files'
g.setup(multipart_post={'foo': 'bar', 'image': UploadFile('C:\\Arbitraje\\vkontakte\\ART\\str.jpg')}) # Подготавливаем запрос
g.go(url) # Отправляем запрос
g.response.url #http://rghost.net/ ...
Отредактировано Mozart (Окт. 27, 2012 10:06:42)
Офлайн
В общем c rghost'om я разобрался, убрал из опции multipart_post – >> ‘foo’ : ‘bar’ который я не понимаю для чего нужен и ‘image’ заменил на ‘file’, тогда все отработало как нужно, картинка залилась, в ответ я получил ссылку для загрузки.
Вот код кому интересно - http://gyazo.com/2bb1828cb1c14d99cf66e6133508a4bd
По zalil.ru я думаю все аналогично, сейчас буду разбираться с sendspace.com, там почему то даже через форму файлы не заливаются, при нажатии на g.submit() выдает ошибку …
Офлайн
MozartПерекидывает, если язык в юзерагенте нерусский, а в грабе рандом пул юзерагентов.
Почему то меня перекинет на .net домен, ну ладно - 'http://rghost.net/'
MozartЭто абсолютно дурацкий пример из офф доков. Как по мне, сетуп стоит вызывать только для опций, которые сохраняются для следующих запросов.g.setup(multipart_post={'foo': 'bar', 'image': UploadFile('C:\\Arbitraje\\vkontakte\\ART\\str.jpg')}) # Подготавливаем запрос g.go(url) # Отправляем запрос
Офлайн
> И еще меня интересует вопрос, в опции multipart_post используется словарь со значениями которые я не понимаю, к примеру ‘foo’: bar' - что это означает? Или ‘image’: UploadFile - почему именно ‘image’ а не ‘file’ - к примеру?
Потому что это пример. Для каждого конкретного случая, естественно ключи multipart_post должны содержать названия полей из формы.
Офлайн