miboy 发表于 2022-7-14 22:43

puppeteer远程浏览器渲染,提供一键接口调用

# puppeteer api

### 完整开源:

(https://github.com/mic1on/puppeteer-render)

#### 基于puppeteer和Node的服务端渲染,提供Docker一键部署及API调用接口。

![](https://miclon-job.oss-cn-hangzhou.aliyuncs.com/img/20220714221947.png)

## 功能 features

- 支持三种渲染模式的API接口(HTML、PDF、screenshots)
- 支持随机动态user-agent
- 支持在fuck模式下隐藏浏览器特征
- 支持自定义cookies、自定义headers

## 运行

- docker
如果你想直接使用本项目,可以直接docker运行。
> docker run -d -p 8080:3000 --name render miclon/puppeteer-render

- 本地运行
你首先需要拉取此项目。
- 安装依赖
> npm install
- 执行
> npm run dev


## API

```
POST http://127.0.0.1:3000/render

{
"url": "https://www.baidu.com", // 必要参数
"mode": "fuck", // 可选,隐藏浏览器特征
"timeout": 30000, // 超时时间,默认30000ms
"waitUntil": "load", // 渲染完成时等待的事件,默认load,可选:load、domcontentloaded、networkidle0、networkidle2
"type": "pdf",// 三种模式:html, pdf, screenshot
"filename": "123.pdf", // 可选,在pdf模式下保存的文件名
"pdf": {      // 可选,在pdf模式下的配置,所有属性可选
      ...
      // 具体属性配置参考:
      // https://github.com/puppeteer/puppeteer/blob/v1.1.0/docs/api.md#pagepdfoptions
},
"screenshot": { // 可选,在screenshot模式下的配置,所有属性可选
      ...
      // 具体属性配置参考:
      // https://github.com/puppeteer/puppeteer/blob/v1.1.0/docs/api.md#pagescreenshotoptions
},
"waitForXPath": { // 可选,等待指定xpath显示。
    xpath: "...",
    ...
    // 具体属性配置参考:
    // https://github.com/puppeteer/puppeteer/blob/v1.1.0/docs/api.md#pagewaitforxpathxpath-options
},
"cookies": "...", // 可选,设置cookies,格式为cookies字符串,可以直接从浏览器抓包复制。例如:"_ga=GA1.2.1234567890.1548994800; _gid=GA1.2.1234567890.1548994800; _gat=1"
"headers": {
    "...": "...", // 可选,设置headers,格式为headers对象,可以直接从浏览器抓包复制。例如:{"Accept-Language": "zh-CN,zh;q=0.9"}
},
"credentials": {// 可选,设置credentials,例如:{"username": "...", "password": "..."}
   "username": "...", // 可选,设置用户名
   "password": "..." // 可选,设置密码
}
}
```
完整的API接口请查看:[接口文档](https://www.apifox.cn/apidoc/shared-6dcc2010-6913-4fe0-88a3-333791d80548)

似水流年2015 发表于 2022-7-15 00:41

这个的作用是指如果碰到反爬厉害的网站,为了省时,可以调用它来返回渲染后的网页信息吗?再提取清洗处理。

JamesBond1 发表于 2022-7-14 22:49

感谢分享!!

hnwang 发表于 2022-7-15 00:04

支持 感谢分享并开源

1e3e 发表于 2022-7-15 04:27

看不太懂还是支持一下吧

wangshaobo930 发表于 2022-7-15 08:34

快乐小风 发表于 2022-7-15 10:03

这个和node 爬虫框架 puppeteer 有啥区别?
这标题起的让人看不懂...

dork 发表于 2022-7-15 10:07

吾爱+2币

miboy 发表于 2022-7-16 22:17

快乐小风 发表于 2022-7-15 10:03
这个和node 爬虫框架 puppeteer 有啥区别?
这标题起的让人看不懂...

你好,区别在于对于使用者来说,只需要通过API,传入要请求的网址即可得到结果,解决AJAX请求、加密数据的情况无法获取数据的问题。
页: [1]
查看完整版本: puppeteer远程浏览器渲染,提供一键接口调用