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标签中显示图像的主要内容,如果未能解决你的问题,请参考以下文章
无论如何通过将随机验证码文本转换为图像并在html中显示来使用角度创建验证码