源起
今早儿打开群,没想到D总就顺手推荐了这个git
https://github.com/GoogleChrome/rendertron
进去一看,熟悉的字样
A dockerized, headless Chrome rendering solution https://render-tron.appspot.com/
|
A dockerized, headless Chrome rendering solution https://render-tron.appspot.com/
|
使用docker 打包google headless 浏览器,集成在一个环境,外部预留一些常见的api ,也有node的使用包
使用
打开git地址,将代码拷到本地,切换到含有Dockerfile
的目录,使用命令
docker build -t rendertron . --no-cache=true
|
docker build -t rendertron . --no-cache=true
|
这一步,我们在本地生成了一个docker镜像(PS:速度慢的同学请考虑使用docker加速),然后我们使用命令起这样一个docker
docker run -it -p 8080:8080 --name rendertron-container rendertron
|
docker run -it -p 8080:8080 --name rendertron-container rendertron
|
这个时候,我们在本地起了这样一个服务,本地的console界面会输出
> bot-render@1.0.0 start /app > node src/main.js Chrome launched with debugging on port 45863 Listening on port 8080
|
> bot-render@1.0.0 start /app
> node src/main.js
Chrome launched with debugging on port 45863
Listening on port 8080
|
界面
我们使用浏览器打开http://127.0.0.1:8080/
,可以看到如下的界面
google做这个酷炫的UI,感觉头一回啊- – ,在中间的框里面我们可以输入自己想要渲染的URL,比如douban吧 ,我们在中间的框里面输入http://www.douban.com
, 然后点击Render & serialize
,
可以看到渲染非常的快
API
从界面上有四个按钮
- Take screenshot – 截图功能
- Render & serialize – 渲染
- Render & serialize with web components v1 – 渲染并加载组件
- view documentation – 查看官方文档
从官方的解读中,我们可以看到他的http api的入口点都是
/render/<url> -> 渲染 /screenshot/<url> -> 截图
|
/render/<url> -> 渲染
/screenshot/<url> -> 截图
|
所以如果我们直接在程序中使用的话,就直接这么写
In [1]: import requests In [2]: url = 'http://127.0.0.1:8080/render/https://www.cnblogs.com' In [3]: r = requests.get(url) In [4]: r.text
|
In [1]: import requests
In [2]: url = 'http://127.0.0.1:8080/render/https://www.cnblogs.com'
In [3]: r = requests.get(url)
In [4]: r.text
|
其它
因为官方build可能需要时间,dockerhub里面已经有人build 好,直接使用命令
docker run -it -p 8080:8080 --cap-add SYS_ADMIN --name rendertron-container mofe/rendertron
|
docker run -it -p 8080:8080 --cap-add SYS_ADMIN --name rendertron-container mofe/rendertron
|
文章来源: brucedone.com,作者:大鱼的鱼塘,版权归原作者所有,如需转载,请联系作者。
原文链接:brucedone.com/archives/1077
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
评论(0)