Используйте Python для подключения к странице php и загрузки изображения - PullRequest
0 голосов
/ 01 февраля 2011

Я хотел бы знать, возможно ли использовать Python для подключения к определенному сайту

(EX: http://www.example.com/python)

и загрузите изображение с компьютера. В основном у меня есть сценарий Python, который берет изображения с веб-камеры. Теперь, после получения изображения, как я могу отправить это изображение на веб-страницу. Если вы скажете мне, как заставить его подключиться к странице, я могу справиться с остальным. Заранее спасибо!

ЭТО ПИФОНОВЫЙ СКРИПТ НА РУКУ:

from VideoCapture import Device

cam = Device(devnum=1)
cam.saveSnapshot('image.jpg', timestamp=3, boldfont=1)

Ответы [ 3 ]

2 голосов
/ 01 февраля 2011

Используйте urllib2 для этого.В основном создайте urllib2.Request с URL-адресом сценария PHP, а затем add_data, чтобы добавить данные изображения, которые вы хотите отправить.

edit : вы можете следовать примерам здесь , и в частности этому примеру , чтобы помочь понять весь процесс

1 голос
/ 01 февраля 2011

Я советую вам научиться "механизировать" библиотеку http://wwwsearch.sourceforge.net/mechanize/ Она очень проста в использовании.

Это пример из одного из моих сценариев.

def upload_and_get_data(username, password, image_filename):
    print image_filename, type(image_filename)
    browser = mechanize.Browser()
    browser.open("http://itmages.ru/user/login")
    form = browser.form = browser.forms().next()
    form["LoginForm[username]"] = username
    form["LoginForm[password]"] = password
    login_response = browser.submit()

    # file uploading
    form = browser.form = browser.forms().next()
    form.add_file(open(image_filename, "r"),
                  filename=os.path.basename(image_filename))
    send_response = browser.submit()

    table_regex = re.compile('<table class="stat".*?<input.*?</table>')
    table_data_text = table_regex.findall(
        send_response.get_data().replace("\n", " "))[0]
    table_data_regex = re.compile(
        '<tr> *<td.*?<b>([^<]*)</b></td> *<td>(.*?)</td> *</tr>')
    table_data = dict(table_data_regex.findall(table_data_text))
    return table_data
0 голосов
/ 01 февраля 2011

Конечно.Откройте файл и используйте urllib:

imgfile = open("image.jpg", "rb")
urllib.urlopen("http://www.example.com/", imgfile.read())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...