如何实现一个具有自动翻页功能的 Node.js 爬虫 All In One

xgqfrms / 2023-08-25 / 原文

如何实现一个具有自动翻页功能的 Node.js 爬虫 All In One

网络爬虫是一种从互联网抓取数据信息的自动化程序;

爬虫原理分析

  1. 分析待爬取网站的种子 URL 格式、页面结构,确定目标链接唯一标识和翻页参数
  2. 通过种子 URL 把网页下载为 HTML 字符串格式
  3. 解析 HTML 字符串,动态读取页面的总分页数量
  4. 使用循环,动态生成 URL
  5. 把当前爬取页面的目标链接,全部按行写入到一个本地文件中
  6. 待完成目标链接到收集后,再按行读取本地文件,设置安全的下载频率,批量下载目标资源( .pdf / .mp4 等文件)

https://nodejs.dev/en/learn/writing-files-with-nodejs/

image

爬虫待选方案

  • 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, 禁止转载 🈲️,侵权必究⚠️!