返回
前端使用 Puppeteer 爬虫下载《React.js 小书》PDF 并合并
前端
2024-02-16 09:49:40
前言
《React.js 小书》是一本非常受欢迎的 React.js 入门教程,由阮一峰编写。该书内容翔实、深入浅出,深受广大开发者的喜爱。然而,该书目前仅提供在线阅读,没有提供 PDF 下载。为了方便读者下载和阅读,本文将介绍如何使用 Puppeteer 爬虫从《React.js 小书》官方网站下载 PDF 文件并将其合并为一个完整的 PDF 文件。
实现步骤
- 安装 Puppeteer
npm install puppeteer
- 创建项目
mkdir my-project
cd my-project
npm init -y
- 在 package.json 文件中添加以下脚本
"scripts": {
"start": "node index.js"
}
- 创建 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);
})();
- 运行脚本
npm start
- 合并 PDF 文件
pdftk A=react-book-*.pdf cat output merged-react-book.pdf
结论
通过以上步骤,我们就可以成功地使用 Puppeteer 爬虫从《React.js 小书》官方网站下载 PDF 文件并将其合并为一个完整的 PDF 文件。希望本教程对您有所帮助。