谷歌无头浏览器puppeteer结合nodeJs+golang书写的行为类爬虫框架

谷歌无头浏览器puppeteer结合nodeJs+golang书写的行为类爬虫框架

Node.js HTTP工具

详细介绍

简介

这是由云天河自封装的一款行为类爬虫框架

章节列表

等等云天河有空了再写写

起步

配置

进入项目根目录
复制初始配置文件

cp -r es6/conf.sample es6/conf

本次表结构请看目录 sqls/ 建表
请根据到目录 es6/conf/db/mysql.js 配置 mysqlredis、浏览器(chromium或者chrome)应用地址

安装

下载 Chrome

linux 环境

linux 版本文档

wget https://repo.fdzh.org/chrome/google-chrome.list -P /etc/apt/sources.list.d/
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
apt-get update
apt-get install google-chrome-stable

这样安装后,该环境就不需要动配置文件了

windows 环境

下载 Chrome 浏览器60以上版本
配置 es6/conf/index.js 中 BROWSER.executablePath 值为 chrome.exe 的路径

配套服务

Mysql 5.5 及以上环境
Redis 3.2 及以上环境
Node 10.0 及以上环境

安装依赖

# 安装依赖包,安装过程中,如果提示 chromium 安装失败,可以不用管。最后配置文件指向你的 chrome.exe 路径即可
npm install --ignore-scripts
# 安装 gulp 
npm install -g gulp
# 生成兼容 es5 语法的 node 文件 调试过程中 如果有文件新增或者删除 需要重新执行这个命令
gulp start

目录介绍

es6 源代码路径
es5 node 可直接运行路径

运行

请使用普通用户权限运行,否则chrome无法调起

# 切换到普通用户(示例:用户名 hlz)
su hlz
# 给予可执行权限
chmod 755 es5/task.js

运行应用,示例运行
目前需要 RabbitMQ 支持
建议该任务使用supervisor常驻
启用多个进程,请根据自身情况测试后决定

/usr/sbin/node /data/common/node_puppeteer_example/es5/task.js mhn queue
操纵浏览器

涉及函数使用说明

性能测试

基础配置

CPU 信息 - TODO
GPU 信息 - TODO

实际资源消耗

TODO

依赖项目

API

本次对外公共接口使用golang实现

对应项目地址

github.com/HaleyLeoZhang/node_puppeteer_example_go

后台

本次后台使用php实现
开源地址:https://gitee.com/haleyleozhang/yth_cms

  • 通过cURL方式,实现了多个渠道的资源爬取
  • 实现了漫画资源相关管理

后台与行为类爬虫的通信方式

后台请求拉取 -> 发送渠道拉取信息到 MQ -> MQ 消费

查看漫画

打开 public/index.html 即可开始体验