Python截屏并在HTML标签中显示图像

1 投票
1 回答
849 浏览
提问于 2025-04-18 02:51

我想在浏览器中显示一个截图.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 从你的异常处理部分删除,你就可以打印出错误信息,并且继续执行程序。

撰写回答