Python截屏并在HTML标签中显示图像
我想在浏览器中显示一个截图.png,这个截图是我用Python脚本拍的。但是我不知道为什么看不到这个图片!
脚本位置在 /var/www/cgi-bin/web.py
from selenium import webdriver
self.driver = webdriver.Phantomjs()
self.driver.get("http://www.google.com")
try:
# print "Take a picture"
picture = (''.join(random.choice(string.letters + string.digits) for n in xrange(10)))
self.driver.save_screenshot((picture) + '.png')
print "Content-type:text/html\r\n\r\n"
print "<html>"
print "<head>"
print "<title>%s</title>" % self.driver.title
print "</head>"
print "<body>"
print "<h2>ScreenShot: %s.png</h2>" % (picture)
print "<img src='%s.png'>" % (picture)
print "</body>"
print "</html>"
except IOError:
print "Error take a picture!"
pass
但是我在浏览器中无法显示这个图片,错误信息是:
(13)Permission denied: exec of '/var/www/cgi-bin/fBgshhFbuJ.png'
我的脚本出了什么问题?
让我再多解释一下我想做的事情。我有一个HTML表单,它会发送两个字符串到我的Python脚本,然后这个脚本会在 /var/www/cgi-bin 文件夹中生成一个截图。我希望在另一个HTML文件中的一个容器或div里显示这个png文件。
这样做可能吗?
我已经修改了 /var 及其子文件夹的权限,但仍然收到相同的错误信息。
谢谢
1 个回答
0
你没有权限在文件夹 /var/www/cgi-bin/
中写入内容,可能更具体来说是 /var/
这个文件夹。如果你把你的脚本放到一个你有写入权限的地方,或者把图片下载到一个可以写入的位置,那么你的程序应该就能正常工作了。
补充说明
如果你把 IOError
从你的异常处理部分删除,你就可以打印出错误信息,并且继续执行程序。