使用Python连接PHP页面并上传图片
我想知道能不能用Python连接到某个网站
(例如:http://www.example.com/python)
然后从电脑上传一张图片。基本上,我有一个Python脚本可以从摄像头获取图片。现在在获取到图片后,我该怎么把这张图片发送到网页上。如果你告诉我怎么连接到那个页面,我可以处理后面的事情。提前谢谢你!
这是我手头的Python脚本:
from VideoCapture import Device
cam = Device(devnum=1)
cam.saveSnapshot('image.jpg', timestamp=3, boldfont=1)
3 个回答
0
当然可以。打开文件,然后使用urllib这个库:
imgfile = open("image.jpg", "rb")
urllib.urlopen("http://www.example.com/", imgfile.read())
2
可以使用 urllib2
来实现这个功能。简单来说,就是创建一个 urllib2.Request
对象,里面放上你要请求的 PHP 脚本的 URL,然后用 add_data
方法把你想提交的图片数据加进去。
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