使用phantomjs将html呈现到一个图像中,这个库的设计是为了适应大容量的连续操作。

phantom-snap的Python项目详细描述


Phantom Snap
====


使用Phantomjs将HTML呈现到图像,此库的设计可用于大容量连续操作。

对于许多包装器执行的每个请求,都有一个新的包装器,这很慢)。
-从url呈现内容,或直接向呈现器提供html内容

roadmap
----
-decorator在指定时区下管理呈现
-decorator在指定pro下管理呈现xies.

示例
——


示例假设您已安装http://phantomjs.org/。



第一个示例演示如何呈现URL并将结果图像保存到/tmp/google render.jpg处的文件中。


js
来自phantom快照。phantom导入phantomjsrenderer
来自phantom快照。{'tz':'美国/洛杉矶'}
'超时':{
'页面加载':3
}
}
r=phantomjsrenderer(配置)

url='http://www.google.com'


尝试:
page=r.render(url,img_format='jpeg')
保存图像('/tmp/google-render,第页)
最后:
r.shutdown(15)

"base64":"ivborw0kggo<;snip>;rk5cyii=",
"error":null,
"加载时间":342
}


此示例显示如何直接向呈现过程提供HTML内容,而不是请求它。



来自phantom_snap.phantom import phantomjsrenderer
来自phantom_snap.imagetools import save_image

config={
"可执行":/usr/local/bin/phantomjs',
"args":phantomjs['args']+['--disk cache=false','--load images=true']
}
r=phantomjsrenderer(配置)

url='http://www.a-url.com'
html='<;html>;<;body>;boo ya!<;/body>;<;/html>;'

尝试:
page=r.render(url=url,html=html,img_format='png')
保存图像('/tmp/html render',page)
最后:
r.shutdown(15)

s.amazon.com/lambda/>;``您可以使用``lambdanderender`类,方法如下:




',
}

url='http://www.youtube.com'

page=r.render(url,img_format='jpeg')
save_image('/tmp/youtube render',page)

r.shutdown()

要了解有关将渲染卸载到aws lambda的详细信息,请参阅``无服务器``文件夹。



decorator s
--


**lifetime**

如果计划在高容量下长时间运行``phantomjsrenderer``实例,建议使用``lifetime`` decorator包装实例,如下所示。

如果呈现程序处于空闲状态,或者在释放任何累积资源的最大生存期之后,decorator将透明地关闭底层phantomjs进程。如果phantomjs配置为使用基于内存的浏览器缓存来防止缓存太大了。在"lifetime"装饰程序关闭呈现程序(由于空闲时间或最长时间)之后,下一个呈现请求将自动创建新的phantomjs进程。

::


from phantom快照.settings import phantomjs
from phantom快照.phantom import phantomjs renderer
从phantom_snap.decorators导入生存期

config={
"可执行文件":/usr/local/bin/phantomjs',
"参数":phantomjs['args']+['--disk cache=false','--load images=true',
"env":{'tz':"美国/洛杉矶"},

e lifetime decorator
"空闲关机秒":900,15分钟,关闭phantomjs如果它空闲了这么长时间
"最大生存秒":43200小时,每12小时重新启动phantomjs
}

r=lifetime(phantomjsrenderer(config))

尝试:
urls=[]一些无休止的url目标源

``幻影快照.settings.py``。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java无法从组合框中选择值。需要JS替代方案   打印带有规范问题的Java打印程序?   使用Xmodem传输文件内容时的附加ASCII字符的java传输   java JAXB通过socket和流读取器块   java“错误:在类Grad中找不到Main方法,请将Main方法定义为:public static void Main(字符串[]args)”   如何在Java中将图像从彩色转换为黑白(灰度)   java如何使用Google云连接服务器发送上游GCM消息   JAVA中的JSON文件字段交叉点   什么是“搜索:{…}”/Java中正式使用的“中断搜索”语法?   由于明显的类路径冲突导致java ToDiscoverable强制转换错误?   java可以成为一种语言。类文件不能添加到URLClassLoader的urlpath   Android设备上会话管理的java最佳实践   Java8Java上的Google应用程序引擎。开发服务器上的时间不可用?   java Derby数据库导出为单个文件?   java如何让jmeter根据访问日志行中的时间戳进行日志重放   访问EJB分离接口时的java IllegalAccessException   java使用JsonPath在不知道密钥的情况下提取值   java将文件保存到Jersey API中的服务器应用程序目录   jsoup中的java Http异常   java有没有错误?