如何实现一个具有自动翻页功能的 Node.js 爬虫 All In One
如何实现一个具有自动翻页功能的 Node.js 爬虫 All In One
网络爬虫
是一种从互联网抓取数据信息的自动化程序
;
爬虫原理分析
- 分析待爬取网站的种子 URL 格式、页面结构,确定目标链接唯一标识和翻页参数
- 通过种子 URL 把网页下载为 HTML 字符串格式
- 解析 HTML 字符串,动态读取页面的总分页数量
- 使用循环,动态生成 URL
- 把当前爬取页面的目标链接,全部按行写入到一个本地文件中
- 待完成目标链接到收集后,再按行读取本地文件,设置安全的下载频率,批量下载目标资源(
.pdf
/.mp4
等文件)
https://nodejs.dev/en/learn/writing-files-with-nodejs/
爬虫待选方案
- Node.js
- Puppeteer (headless Chrome)
- Shell Script
- Python Script
... 等
注意: 爬虫翻页时需要遵守网站的反爬虫策略
,如果爬取频率
过快,可能会导致 IP 被封
HTML string => HTML DOM
解析 HTML 字符串
$ npm i -S cheerio
import * as cheerio from 'cheerio';
// const cheerio = require('cheerio');
// const $ = cheerio.load('html string');
const $ = cheerio.load('<h2 class="title">Hello world</h2>');
// selector ✅
$('h2.title').text();
// "Hello world"
// traverse the DOM ✅
$('h2.title').find('.subtitle').text();
// manipulate the element
$('h2.title').text('Hello there!');
$('h2').after('<h3>How are you?</h3>');
https://cheerio.js.org/
demos
refs
©xgqfrms 2012-2021
原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!
未经授权禁止转载,违者必究!