Python截图并在html标签中显示图像

Posted

技术标签:

【中文标题】Python截图并在html标签中显示图像【英文标题】:Python take screenshot and display image in html tag 【发布时间】:2014-04-15 17:58:08 【问题描述】:

我正在尝试显示屏幕截图 .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 文件夹中截屏。我希望在容器或 div html 中显示 png 文件,但在另一个 html 文件中显示。

那么有可能吗?

我更改文件夹 /var 和其他子文件夹的权限,但收到相同的错误消息。

谢谢

【问题讨论】:

对我来说听起来很简单——运行它的用户没有权限。也就是说,权限被拒绝通常意味着什么,对吧? @Arran 你说得对,但是尝试打开文件的用户是 apache,我用 775 递归地将组权限更改为 apache。 【参考方案1】:

您无权写入文件夹 /var/www/cgi-bin/ 可能更具体地说是 /var/ 文件夹。如果您将脚本位置更改为您有权写入的位置或图片的下载位置,那么您的程序应该可以正常工作。

编辑

如果你从你的except中删除IOError,你应该能够打印消息并传递错误

【讨论】:

@RodrigoAndrade 告诉我你的结果 我删除了 IOError 语句和相同的消息错误。 所以你的 except 语句只是 except: 而不是 except IOError: 并且它不打印里面的内容? 让我再解释一下我想做什么,好吗?我有表单 html,其中包含两个字段电子邮件和 url,发送到我的 python 脚本,工作正常。访问网址后,成功截取屏幕截图,但无法通过 cgi 在浏览器上显示图像,但我有权在文件夹 /var/www/cgi-bin 中写入。是否可以通过参数将图像文件的本地化传递给另一个 html 文件并输入到 div 中?谢谢 感谢您的帮助,问题很简单,我只需将文件的位置更改为 /var/www/html/images 并完成。显示图像。

以上是关于Python截图并在html标签中显示图像的主要内容,如果未能解决你的问题,请参考以下文章

生成 div 的图像并另存为

HTML如何显示多项选择的输出?

无论如何通过将随机验证码文本转换为图像并在html中显示来使用角度创建验证码

在 ipad 上水平显示 UIScrollview 中的图像并在点击时获取图像标签

如何使用 API 中的 HTML 标签并在页面上显示?

如何对齐屏幕截图中显示的图像?