<h1 align="center">📚 掘金小册爬虫 👋</h1>
<p>
<img alt="Version" src="https://img.shields.io/badge/version-1.0.0-blue.svg?docsSeconds=2592000" />
<a href="https://github.com/h7ml/juejinBooksSpider#readme" target="_blank">
<img alt="Documentation" src="https://img.shields.io/badge/documentation-yes-brightgreen.svg" />
</a>
<a href="https://github.com/h7ml/juejinBooksSpider/graphs/commit-activity" target="_blank">
<img alt="Maintenance" src="https://img.shields.io/badge/Maintained%3F-yes-green.svg" />
</a>
<a href="./docs/" target="_blank">
<img alt="License: Apache--2.0" src="https://nakoruru.h7ml.cn/proxy/img.shields.io/badge/小册阅读-4ABF8A?logo=Blovin&logoColor=fff" />
</a>
</p>
> 🕷️ 掘金小册爬虫脚本。将小册保存为 markdown,pdf,html 格式
## 📜 说明
[本项目案例](https://h7ml.github.io/juejinBooksSpider/docs/)使用爬虫爬取的为公开的掘金小册。可在[掘金小册/阅读](https://juejin.cn/course/article) 中查看。本项目仅供学习交流使用,请勿将个人付费小册公开。⚠️ 若公开由此造成的一切后果,与本项目无关。
## 🛠 使用
### 👥 clone 项目
```bash
git clone https://github.com/h7ml/juejinBooksSpider.git
cd juejinBooksSpider
```
### 📦 install 依赖
```bash
pnpm install
# or
# npm install
# or
# yarn install
```
### 🎲 运行
```bash
# 爬取单本小册
# pnpm dev <小册地址>
pnpm dev https://juejin.cn/book/6844723704639782920
# 爬取多本小册 需要配置cookie 并且设置spiderAll为true 到.env文件。然后执行 pnpm start 即可
```
### 📁 配置文件说明
#### 📋 类型定义
```ts
// \src\types.d.ts
export type FileFormat = 'pdf' | 'md' | 'html' | ''
export interface EvConfig {
log: string | boolean
storeDirs: string
cookie: string
course: string
spiderAll: string | boolean
headless: string | boolean
filetype: FileFormat
puppeteerOptions: PuppeteerLaunchOptions
}
```
#### ⚙️ .env
- `cookie`:掘金网站的 Cookie,用于爬取授权访问的小册。
- `isLog`:是否输出日志形式,默认为 `true`。开启后将在`dist`目录下产生`log`文件。
- `storeDir`:小册保存的目录,默认为`docs`。表示当前目录下的`docs`目录。
- `course`:小册地址,默认为`https://juejin.cn/book/6844723704639782920`。若命令行中传入了小册地址,则以命令行中的地址为准。
- `spiderAll`:是否爬取所有小册,默认为`false`。若为`true`,则会爬取所有小册,否则只爬取`course`中指定的小册。
- `filetype`: 保存的文件类型,默认为`md`。可选值为`md`、`pdf`、`html`。
- `headless`: 是否使用无头浏览器,默认为`true`。若为`false`,则会使用有头浏览器,方便调试。文档参考:[puppeteer](https://pptr.dev/troubleshooting/#chrome-headless-disables-gpu-compositing)
#### ⚙️ `puppeteerOptions`
`puppeteerOptions` 为`puppeteer`的启动参数,非必须。文档参考:[puppeteer](https://pptr.dev/browsers-api/browsers.launchoptions/) 如需修改。请在[config](src/config/index.ts) 中配置
- 若你在`wsl` 中使用,需要安装`google-chrome` 然后配置`puppeteerOptions`参数为`{executablePath: 'google-chrome'}` 即可。文档参考[install-google-chrome-wsl](https://www.tiredsg.dev/blog/install-google-chrome-wsl/) [@croatialu](https://github.com/croatialu)
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
掘金小册爬虫脚本 将小册保存为 markdown,pdf,html 格式 (205个子文件)
.eslintrc.cjs 364B
.prettierrc.cjs 43B
.editorconfig 215B
.env 1KB
.gitignore 367B
favicon.ico 178KB
build.js 376B
package.json 3KB
tsconfig.json 381B
vercel.json 197B
.lintstagedrc 190B
12-使用掘金:🚁 掘金社区签约作者内容品控文档.md 17KB
52-杨德华:大型峰值业务背后的高可用架构实践.md 14KB
8-使用掘金:✏️ 如何使用掘金编辑器写专栏.md 12KB
index.md 11KB
71-薛英才:字节跳动高性能 Kubernetes 元信息存储方案探索与实践.md 11KB
16-金振祖:统一工程化!奇安信千星平台的破圈之路.md 11KB
53-吕昭波:模块化构建、评估、演进云端业务架构.md 10KB
9-使用掘金:🔥 如何让你的文章获得更多曝光和认可.md 10KB
15-徐辛承:快手增长团队的前端工程化思考.md 10KB
72-章骏 :字节跳动大规模集群下 KubeAPIServer 的流量治理方案.md 9KB
16-使用掘金:👤 如何玩转团队号.md 9KB
3-如何选题、定提纲和组织内容.md 9KB
73-高超:买菜B端容器化实践.md 8KB
37-陈旭:低代码平台可视化模式下的多人协同开发功能的架构和实现.md 8KB
51-杨道谈:小红书微服务框架及治理系统的演进之路.md 8KB
39-冯盛源:下一代 Web 实时音视频技术和开发实践.md 8KB
58-王顺:Vertex AI 助力大模型搜索和训练.md 8KB
12-阔鑫:Serverless 计算在字节跳动的实践与探索.md 8KB
43-李建杭:你该熟知的 CSS 优先级别.md 8KB
41-周成:亿级安装量,如何将 SDK 崩溃率降低至十万分之五?.md 8KB
60-蔡金龙:云时代下的数据库自治体系建设与实践.md 8KB
67-杨若扬:视频会议场景——RTC技术的试金石.md 7KB
50-李世奇:如何在繁重的工作中持续成长.md 7KB
59-许志耿:PPL:高性能推理在车载智能场景下的应用与实践.md 7KB
10-使用掘金:👮♀️掘金的内容审核和推荐规则.md 7KB
49-王海银(歪歪):聊聊我的技术写作之路.md 7KB
13-使用掘金:❎ 掘金社区行为规范&处罚措施.md 7KB
14-使用掘金:✍🏻如何快速上手创作者中心.md 7KB
14-何宗宪:以 Google Cloud Serverless 框架,打造高效开发、部署及运营架构.md 7KB
1-什么是掘金小册.md 7KB
70-向武 :字节云原生资源管理实践.md 7KB
69-任静思:字节跳动轻量级 kubernetes 多租户方案探索与实践.md 7KB
44-周爱民:动态模块与浏览器环境下的异步.md 7KB
33-钟健鑫:用数据思维管理研发.md 6KB
11-使用掘金:📐 掘金社区内容的标准和规范.md 6KB
13-霍秉杰:云原生时代函数计算平台的探索与实践.md 6KB
18-李光毅:破解前端性能优化里的迷思.md 6KB
46-舒弘:前端多媒体技术.md 6KB
23-⚠️ 常见问题.md 6KB
8-敖小剑:云原生下的新思考:如何让 Spring Cloud 更加 Native?.md 6KB
36-刘菊萍(絮黎):基于 LowCodeEngine 调试能力建设与实践.md 6KB
17-黄家兴:转转 Hybrid 性能优化与监控实践.md 6KB
4-了解掘金:🏆 掘力值、创作者等级与权限(新).md 6KB
42-李嵩:空间音频如何助力在线互动场景的沉浸感体验?.md 6KB
4-尤雨溪:2022 Web 前端生态趋势.md 6KB
48-郭树煜:普通技术人的弯道超车指南.md 5KB
3-了解掘金:⛏️ 掘金的功能简介.md 5KB
66-王杰西:字节跳动次世代编解码技术的演进之路.md 5KB
57-韦阳:Transformer 系列模型量化训练与推理.md 5KB
74-李华武:浅谈大环境下的前端代码加固.md 5KB
1-后端|Netty 学习 第一周.md 5KB
27-王立刚:英特尔数据中心安全技术及应用.md 5KB
45-甄焱鲲(甄子):前端智能化工程实践续篇—可微编程.md 5KB
68-周明才:阿里云窄带高清的 演进突破与场景实战.md 5KB
64-郭斌:Google Cloud 在云原生数据库上的实践和探索.md 5KB
40-伍双:互动白板的开发难点:冲突处理和扩展开发.md 5KB
38-郑洋洋:可视化运营活动页面编辑器的设计.md 5KB
11-于鸿磊:云原生技术跨向生物信息计算领域的最后十公里.md 5KB
31-苏锐:JuiceFS 从云服务到开源的发展之路.md 5KB
77-王军AI连接古代和今朝.md 5KB
7-许渊:英特尔助力云原生落地.md 4KB
34-于游:“团伙”—“团队”—“高管”.md 4KB
26-胡风华:英特尔傲腾持久内存与应用.md 4KB
7-有小册想法,如何成为小册作者.md 4KB
2-如何使用掘金发布小册.md 4KB
62-聂愿愿:字节云原生数据库(MySQL)的优秀技术实践.md 4KB
9-刘德志:基于云原生消息系统构建实时数据仓库.md 4KB
61-李继炳:Apache Doris数据湖分析技术与应用实践.md 4KB
56-夏磊:如何利用 Intel 加速工具构建端到端的高性能应用.md 4KB
78-祝锋AI在抖音自然中的应用.md 4KB
1-了解掘金:❓ 为什么做掘金社区.md 4KB
75-章健:基于 WebAssembly 和 QuickJS 建设新一代 Web 开放容器.md 4KB
76-唐琪森:西瓜视频让视障人群也能看电影.md 4KB
21-雷景言:数据驱动的智能驾驶云.md 4KB
intro.md 4KB
4-如何定价并正式发布售卖小册.md 4KB
22-张广伟:网络化的人工智能物流运输系统.md 4KB
47-王越:创作正当时,相伴共成长.md 4KB
35-陈驰远:CTO 职责体系构建:商业、团队和技术.md 4KB
10-刘凡:Google Cloud 为您的云原生软件交付链保驾护航.md 4KB
20-李银龙:数据驱动的智能驾驶云.md 4KB
index.md 4KB
intro.md 4KB
3-何晓冬:多模态智能人机对话交互技术的发展与产业实践.md 4KB
30-黄东旭:在全球化和多云环境中看开源软件的商业化探索.md 4KB
28-刘建航:AI 专有芯片如何平衡高性能和通用性.md 4KB
15-使用掘金:🎈 如何玩转沸点.md 3KB
README.md 3KB
5-如何维护读者的提问和反馈.md 3KB
共 205 条
- 1
- 2
- 3
资源评论
进击的代码家
- 粉丝: 2203
- 资源: 204
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- ### 1、项目介绍 本项目Scrapy进行数据爬取,并使用Django框架+PyEcharts实现可视化大屏 效果如下:
- # 微信小程序-健康菜谱 基于微信小程序的一个查找检索菜谱的应用 ### 效果 !动态图(./res/gif/demo
- zabbix-get命令包资源
- 毕业设计,基于PyQt5实现的可视化界面的Python车牌自动识别系统源码
- 26-朴素贝叶斯分类.rar
- 没有安Matlab 也可以 生成FIR抽头系数工具.py
- python烟花代码.rar
- 实验目的: 1.构建基于verilog语言的组合逻辑电路和时序逻辑电路; 2.掌握verilog语言的电路设计技巧 3.完成如
- 扩展卡尔曼滤波matlab仿真
- 3_base.apk.1
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功