我想知道是否可以使用python连接到某个站点
(EX:http://www.example.com/python)
并从计算机上传图像。 基本上我有一个python脚本,从网络摄像头拍摄图像。现在,在拍摄完图像之后,我该如何将该图像发送到网页。如果你告诉我如何让它连接到页面我可以处理其余的。提前谢谢!
这是手上的PYTHON脚本:
from VideoCapture import Device
cam = Device(devnum=1)
cam.saveSnapshot('image.jpg', timestamp=3, boldfont=1)
答案 0 :(得分:2)
使用urllib2
。基本上使用PHP脚本的URL构建urllib2.Request
,然后add_data
添加要提交的图像数据。
修改:您可以按照示例here,特别是this example来了解整个过程
答案 1 :(得分:1)
我建议你学习“mechanize”库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
答案 2 :(得分:0)
当然。打开文件,然后使用urllib:
imgfile = open("image.jpg", "rb")
urllib.urlopen("http://www.example.com/", imgfile.read())