1. 概述 前段时间在看一本很多人推荐的线性代数教材《线性代数应该这样学》第三版,这一版每个章节都有大量的习题。 官方网站上虽然按照章节提供了习题的答案,一来因为网站是国外的,访问不流畅,二来答案中还夹杂着广告,影响查看。 所以,想试着将
前段时间在看一本很多人推荐的线性代数教材《线性代数应该这样学》第三版,这一版每个章节都有大量的习题。
官方网站上虽然按照章节提供了习题的答案,一来因为网站是国外的,访问不流畅,二来答案中还夹杂着广告,影响查看。
所以,想试着将答案爬取下来制作成pdf,查看起来方便,也不会受网络的影响。
只是获取网页比较简单,没什么好说的,这里和前几篇数据采集实战不一样的地方在于:
绿色背景的部分是通过puppetter来完成的。
蓝色背景的部分在采集之后通过PDF相关的命令行小工具来完成。
await page.evaluate(() => {
const domToRemove = [
"#top-bar-wrap",
"#site-header",
"#main> .page-header",
"#content > article > ul",
"#content > article > .entry-content > center",
"#content > article > .entry-content > .google-auto-placed",
"#content > article > .entry-content > #amzn_assoc_ad_div_adunit0_0",
"#content > article > .entry-content > #related_posts",
".post-tags",
"nav",
"section",
".addthis-smartlayers",
"#right-sidebar",
"footer",
];
for (let j = 0; j < domToRemove.length; j++) {
const doms = document.querySelectorAll(domToRemove[j]);
for (let k = 0; k < doms.length; k++) {
// !!!这一步是关键,将自己从DOM树中删除
doms[k].parentnode.removeChild(doms[k]);
}
}
});
// 网页保存成html文件,为了后面可以转换成pdf
await savePage(
page,
"./output/linearAlgebraExercises",
exercies[i] + ".html"
);
将html文件转成pdf的工具很多,python和nodejs有很多这种库,选择一种你熟悉的都可以。
我用的 pandoc,转换效果还不错!数学公式都可以正确显示。
# 转换html的命令示例
pandoc input.html -t latex -o output.pdf
显示效果如下:
合并多个pdf也有很多小工具,我使用的是 pdftk。
# 合并pdf的命令示例
pdftk input1.pdf input2.pdf input3.pdf cat output output.pdf
整个流程很简单,唯一值得说的技术点可能就是在获取网页时,实时的去除了不必要的部分。
虽然很简单,但是整个流程是完备的,对它的细节进行一些完善之后,其实就是一个自动制作电子书的过程。
爬取数据只是为了研究学习使用,本文中的代码遵守:
--结束END--
本文标题: 数据采集实战(四)-
本文链接: https://www.lsjlt.com/news/8809.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-07
2024-05-07
2024-05-07
2024-05-07
2024-05-03
2024-05-03
2024-05-03
2024-05-03
2024-05-03
2024-05-03
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0