返回

前端使用 Puppeteer 爬虫下载《React.js 小书》PDF 并合并

前端

前言

《React.js 小书》是一本非常受欢迎的 React.js 入门教程,由阮一峰编写。该书内容翔实、深入浅出,深受广大开发者的喜爱。然而,该书目前仅提供在线阅读,没有提供 PDF 下载。为了方便读者下载和阅读,本文将介绍如何使用 Puppeteer 爬虫从《React.js 小书》官方网站下载 PDF 文件并将其合并为一个完整的 PDF 文件。

实现步骤

  1. 安装 Puppeteer
npm install puppeteer
  1. 创建项目
mkdir my-project
cd my-project
npm init -y
  1. 在 package.json 文件中添加以下脚本
"scripts": {
  "start": "node index.js"
}
  1. 创建 index.js 文件
const puppeteer = require('puppeteer');

(async () => {
  // 启动浏览器
  const browser = await puppeteer.launch();

  // 打开新页面
  const page = await browser.newPage();

  // 导航到目标页面
  await page.goto('https://www.ruanyifeng.com/react/index.html');

  // 等待页面加载完成
  await page.waitForSelector('h1');

  // 获取所有章节链接
  const links = await page.$('a[href^="https://www.ruanyifeng.com/react/"]');

  // 创建 PDF 文件
  const pdf = await page.pdf({
    format: 'A4',
    margin: {
      top: '0.5in',
      right: '0.5in',
      bottom: '0.5in',
      left: '0.5in'
    }
  });

  // 关闭浏览器
  await browser.close();

  // 将 PDF 文件保存到本地
  fs.writeFileSync('react-book.pdf', pdf);
})();
  1. 运行脚本
npm start
  1. 合并 PDF 文件
pdftk A=react-book-*.pdf cat output merged-react-book.pdf

结论

通过以上步骤,我们就可以成功地使用 Puppeteer 爬虫从《React.js 小书》官方网站下载 PDF 文件并将其合并为一个完整的 PDF 文件。希望本教程对您有所帮助。