突然想抓取个ip代理,现在Node
这么火,为什么不用他写个爬虫呢。
那么,开始吧!
技术:
puppeteer
:- 由Google团队开发,该工具可以理解成我们日常使用的Chrome的无界面版本以及对其进行操控的js接口套装。
- 常见用法:单元测试,性能测试,爬虫。
- 项目地址:https://github.com/GoogleChrome/puppeteer
Egg.js
:- 由阿里团队开发,其宗旨是:为企业级框架和应用而生,希望由 Egg.js 孕育出更多上层框架,帮助开发团队和开发人员降低开发和维护成本。
- 项目地址:https://github.com/eggjs/egg/
安装:
环境 :puppeteer本身依赖6.4以上的Node,为了配合使用async/await,推荐使用7.6版本以上的Node。
1. 初始化项目:
使用egg.js
初始话项目:
$ npm i egg-init -g
$ egg-init egg-example --type=simple
$ cd egg-example
$ npm i
启动项目:
$ npm run dev
$ open localhost:7001
更多操作查看官方文档。
2. 下载依赖:
安装puppeteer
:
$ npm i puppeteer -S
3. 编写:
egg.js 中 对于 router controller service 的使用大家可以去文档中看一下,很简单,这里主要讲解这么使用puppeteer抓取页面。
简单介绍一下puppeteer
使用:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://www.example.com');