SeimiAgent是基于QtWebkit开发的可在服务器端后台运行的一个webkit服务,可以通过SeimiAgent提供的http接口向SeimiAgent发送一个load请求(需求加载的URL以及对这个页面接受的渲染时间或是使用什么代理等参数),通过SeimiAgent去加载并渲染想要处理的动态页面,然后将渲染好的页面直接返给调用方进行后续处理。SeimiAgent的加载渲染环境都是通用浏览器级的,所以不用担心他对动态页面的处理能力。目前SeimiAgent只支持返回渲染好的HTML文档,后续会增加图像快照已经PDF的支持,方便更为多样化的使用需求。
目前暂时只支持下面这两个平台的二进制版本的维护更新,其他平台暂时需要自行编译构建
cd /dir/of/seimiAgent ./SeimiAgent -p 8000
执行命令后,SeimiAgent会起一个http服务并监听你所指定的端口,如例子中的8000端口,然后你就可以通过任何一种你熟悉的语言像SeimiAgent发送一个页面的加载渲染请求,并得到SeimiAgent渲染好的HTML文档进行后续处理。
仅支持post请求,请求地址/doload
url 目标请求地址,必填项
renderTime 在所有资源都加载好了以后留给SeimiAgent去渲染处理的时间,如果是很复杂的动态页面这个时间可能就需要长一些,具体根据使用情况进行调整。非必填,单位为毫秒
proxy 告诉SeimiAgent使用什么代理,非必填,格式:http|https|socket://user:passwd@host:port
postParam 这个参数只接受Json格式的值,值的形式为key-value对,告诉SeimiAgent此次请求为post并使用你给定的参数。
useCookie 是否使用cookie,如果设置为1则为使用cookie
这个过程会花费很长时间如果你觉着很有必要的话,一般情况下更推荐使用发布好的二进制可执行文件
ubuntu上
sudo apt-get install build-essential g++ flex bison gperf ruby perl libsqlite3-dev libfontconfig1-dev libicu-dev libfreetype6 libssl-dev libpng-dev libjpeg-dev python libx11-dev libxext-dev
centos上
yum -y install gcc gcc-c++ make flex bison gperf ruby openssl-devel freetype-devel fontconfig-devel libicu-devel sqlite-devel libpng-devel libjpeg-devel
python build.py
接下来就等吧,国内网络不好可能还要重来(因为需要先从github上下载qtbase和qtwebkit这两个依赖,后续如果有时间会把qtbase和qtwebkit拷到国内仓库一份),4核I5大概半个小时以上,单核云主机一般2个小时左右,16核以上服务器编译一般在十分钟以内
更多文档还在准备中,感谢大家支持Seimi家族(SeimiCrawler,SeimiAgent)
SeimiAgent SeimiAgent是基于QtWebkit开发的可在服务器端后台运行的一个webkit服务,可以通过SeimiAgent提供的http接口向SeimiAgent发送一个load请求(需求加载的URL以及对这个页面接受的渲染时间或是使用什么代理等参数),通过SeimiAgent去加载并渲染想要处理的动态页面,然后将渲染好的页面直接返给调用方进行后续处理。SeimiAgent的加
(一)作用 简单点说,有些页面元素是靠js动态加载的,那么我们在使用爬虫时,无法直接取到这些动态加载的DOM元素。而使用 SeimiAgent 工具以后,它会在我们取DOM元素之前,预先将js动态加载的部分先加载出来,这样我们就可以向取普通DOM元素一样进行处理。 (二)安装 1、先去SeimiAgent官网下载最新的工具包 2、centos上操作 yum -y install gcc gcc
SeimiAgent SeimiAgent是基于QtWebkit开发的可在服务器端后台运行的一个webkit服务,可以通过SeimiAgent提供的http接口向SeimiAgent发送一个load请求(需求加载的URL以及对这个页面接受的渲染时间或是使用什么代理等参数),通过SeimiAgent去加载并渲染想要处理的动态页面,然后将渲染好的页面直接返给调用方进行后续处理。SeimiAgent的加
服务端渲染一个很常见的场景是当用户(或搜索引擎爬虫)第一次请求页面时,用它来做初始渲染。当服务器接收到请求后,它把需要的组件渲染成 HTML 字符串,然后把它返回给客户端(这里统指浏览器)。之后,客户端会接手渲染控制权。 下面我们使用 React 来做示例,对于支持服务端渲染的其它 view 框架,做法也是类似的。 服务端使用 Redux 当在服务器使用 Redux 渲染时,一定要在响应中包含应用
准备动作 1、安装nodejs与安装express 安装nodejs教程:http://www.cnblogs.com/pigtail/archive/2013/01/08/2850486.html 安装 express 教程:https://www.wenjiangs.com/doc/f5jxm7ii 2、安装node-jsx(使nodejs支持jsx语法) $ npm install node
实验性 SSR 支持还处于试验阶段,你可能会遇到 bug 和不受支持的用例。请考虑你可能承担的风险。 注意 SSR 特别指支持在 Node.js 中运行相同应用程序的前端框架(例如 React、Preact、Vue 和 Svelte),将其预渲染成 HTML,最后在客户端进行脱水化处理。如果你正在寻找与传统服务器端框架的集成,请查看 后端集成指南。 下面的指南还假定你在选择的框架中有使用 SSR
从 3.8.0 开始,san 的服务器端渲染由 san-ssr 实现。如果你在使用 3.8.0 之前的 san,请参考 服务器端渲染(3.8.0 之前)。 San 的服务端渲染支持是基于 组件反解 的: 服务端输出的 HTML 中带有对视图无影响,能帮助组件了解数据与视图结构的标记片段 浏览器端,组件初始化时从标记片段理解组件结构,在后续用户操作时组件能正确响应,发挥作用 提示:由于组件运行环境需
如果你调研服务器端渲染(SSR)只是用来改善少数营销页面(例如/,/about,/contact等)的 SEO,那么你可能需要预渲染。无需使用 web 服务器实时动态编译 HTML,而是使用预渲染方式,在构建时(build time)简单地生成针对特定路由的静态 HTML 文件。优点是设置预渲染更简单,并可以将你的前端作为一个完全静态的站点。 如果你使用 webpack,你可以使用prerende
info 如果您能了解下面这些技术,能加快您对本文的了解 vuex - Vue.js 应用程序开发的状态管理模式 Vue.js SSR - Vue.js 服务器端渲染 webpack - 编译构建工具 Lavas 服务器端渲染模板参考了 vue-hackernews 的渲染和开发机制,并且结合了 Lavas 的 App Shell 模板,导出的工程中会有 App Shell 等 如果您不了解 vu
Support in 2.8.0+ 介绍 什么是服务端渲染 服务端渲染(Server-Side Render),是指将单页应用(SPA)在服务器端渲染为 HTML 片段,发送到浏览器,然后为其绑定状态与事件,成为完全可交互页面的过程。 与客户端渲染的区别 后续简称服务端渲染为 SSR,客户端渲染为 CSR 如下图所示: 对比 SPA 站点 和 SSR 站点 在 SEO 区别: SSR 优势在于:
React 提供了两个方法 renderToString 和 renderToStaticMarkup 用来将组件(Virtual DOM)输出成 HTML 字符串,这是 React 服务器端渲染的基础,它移除了服务器端对于浏览器环境的依赖,所以让服务器端渲染变成了一件有吸引力的事情。 服务器端渲染除了要解决对浏览器环境的依赖,还要解决两个问题: 前后端可以共享代码 前后端路由可以统一处理 Rea