Как я могу использовать python для отправки данных (изображений) на ImageBam.com

Я много читал о multipart/forms, chanize и twill, но не мог понять, как реализовать код.

Использование MultipartPostHandler для отправки данных формы POST с помощью Python

Сначала я попытался заполнить формы на

www.imagebam.com/basic-upload

Я могу заполнять формы, но не могу отправить данные, даже если я их отправлю().

посмотрев исходный код на странице выше, я понял, что все, что мне нужно сделать, это «опубликовать» данные в правильном типе контента на странице (поправьте меня, если я ошибаюсь, пожалуйста)

http://www.imagebam.com/sys/upload/save

напрямую..

Я пытался использовать poster.py, но не мог понять, как это работает. Я могу немного использовать механизацию и саржу, но я застрял, так как это сложнее, чем простая публикация формы, я думаю.

Итак, мои вопросы;

– Как я могу использовать poster.py (или созданные пользователем классы multipartform) для загрузки изображений на imagebam.com

-или любые другие альтернативные решения :)


person gokcennurlu    schedule 14.01.2012    source источник


Ответы (3)


Не полагайтесь полностью на сторонние библиотеки, такие как mechanize. Либо реализуйте свой официальный API на python API ImageBam, либо посмотрите этот проект, разработанный на pyqt4 pymguploader, чтобы загрузить изображение, а затем попытаться реализовать его самостоятельно.

person RanRag    schedule 14.01.2012
comment
спасибо за комментарий :) Мне было трудно понять API imageban, потому что я ничего не знаю о вещах oatuh. Я решил проблему с помощью poster.py :) - person gokcennurlu; 14.01.2012

Механизация не подходит для этой задачи.

Реализация http://code.google.com/p/imagebam-api/ в python намного надежнее.

Примеры находятся в PHP/curl, преобразование их в python/urllib2 должно быть тривиальным.

person Paulo Scardine    schedule 14.01.2012
comment
спасибо за комментарий :) Я решил это, используя stackoverflow.com/questions/6850239/ модуль постера :) - person gokcennurlu; 14.01.2012

Да! Я это сделал. Я использовал этот вопрос.

Вот код:

>>> from poster.encode import multipart_encode
>>> from poster.streaminghttp import register_openers
>>> import urllib2
>>> register_openers()
<urllib2.OpenerDirector instance at 0x02CDD828>
>>> datagen, headers = multipart_encode({"file[]": open("D:\hedef\myfile.jpg","rb"),"content_type":"1","thumb_size":"350"})
>>> request = urllib2.Request("http://www.imagebam.com/sys/upload/save", datagen, headers)
>>> print urllib2.urlopen(request).read()

Теперь все, что мне нужно сделать, это использовать BeautifulSoup для обработки кодов эскизов :)

person gokcennurlu    schedule 14.01.2012