<h1 align="center">
<a href="#">
<img src="./img/logo.png" width ="530px">
</a>
</h1>
<p align="center">
<a target="_blank" href="https://www.gnu.org/licenses/gpl-3.0.zh-cn.html"><img src="https://img.shields.io/badge/License-GPLv3-blue.svg"></a>
<a href="#python3"><img src="https://img.shields.io/badge/python-v3.8-blue"></a>
<a href="https://www.python-httpx.org/"><img src="https://img.shields.io/badge/httpx-v0.22.0-brightgreen"></a>
</p>
博客园专注于为开发者服务,致力于为开发者打造一个**纯净的**技术学习与交流社区
如果你也受到过其它博客平台的骚扰:碍眼的广告,搜索引擎中点进靠前的搜索结果却无功而返
想要维护一片纯净之地的话,欢迎支持博客园,她需要你:
👉 **[会员救园](https://www.cnblogs.com/cmt/p/17520031.html)**
---
本程序代码开源,流程透明。旨在帮助博主们把自己的博客离线到本地
程序会以博客园的随笔分类来建立文件夹并下载相应的随笔原稿件,文章格式为 markdown (.md) 格式,同时支持离线文章中引用的图片
右上角点个star⭐不迷路~~~
## Table of Contents
- [Usage](#usage)
- [Configuration](#configuration)
- [Dependencies](#dependencies)
- [Start](#start)
- [Features](#features)
- [For Developer](#for-developer)
- [Document](#document)
- [Links](#links)
## Usage
### Configuration
运行前需要配置`config.ini`:
1. 修改`config.ini.example`文件名为`config.ini`,使用文本编辑器打开
2. 打开浏览器登录博客园后台,登录时勾选"记住我"
3. 登录后浏览器按F12,找到Cookie,拷贝`.Cnblogs.AspNetCore.Cookies`的值到`config.ini`中
<img src="./img/cookie.png" width ="660px">
4. 其余选项按需填写,文件需以UTF-8编码保存
开启离线后,随笔中的图片链接会被替换自动为本地图片的链接
### Dependencies
运行`pip install`前需关闭系统全局代理
```
pip install httpx
```
### Start
配置好程序并安装好httpx依赖后,命令行运行:
```python
python main.py
```
会看到打印的输出:
![example](./img/example.png)
平时科学上网的话运行时需关闭全局代理,否则http连接错误
### Features
下载的文件名为随笔标题,分类和标题中的特殊字符`\/:*?"<>|`会被空格代替,文件编码为UTF-8
程序会区分你的随笔是否是公开的,是否是草稿状态,并在文件名后追加`[非公开]`或`[草稿]`
程序只能在Windows下运行,未做其他系统适配
如果你在博客园中删除了一篇文章,程序不会删除相应的本地文章
`.CnblogsDownloaderFlag.json`中保存着上次运行程序的时间,如果博客园中的文章未更新,那么不会反复下载
一旦程序决定要下载某篇随笔,那么它会覆盖此随笔及其引用的图片
代码块中的图片也会被下载,只要它的链接是有效的,比如你的随笔中有下列内容
````markdown
假如这是你的随笔原稿
```
<img src="https://github.com/Charles94jp/cnblogs-blogger-downloader/blob/master/img/logo.png?raw=true">
```
那么上面代码块里的图片也会被下载
````
## For Developer
博客园公开的api文档:https://api.cnblogs.com/help
但显然不够用,而且要申请api权限,于是自己根据网络通信总结了几个重要的api的文档:[cnblogs-apiDoc](/lib/cnblogs-apiDoc.md)
**项目目录结构**
```
.
├── docs 项目API文档,GitHub Pages
├── img readme文档图片
├── lib
│ ├── cnblogs-apiDoc.md 博客园接口文档
│ └── cnblogs_api.py 博客园http接口库
├── sphinx 构建项目API文档
│ ├── source
│ │ ├── _static
│ │ ├── _templates
│ │ ├── lib
│ │ ├── cnblogs_downloader.rst
│ │ ├── conf.py sphinx配置文件
│ │ ├── favicon.ico
│ │ ├── index.rst
│ │ └── main.rst
│ ├── Makefile
│ └── make.bat
├── LICENSE 项目开源许可证
├── cnblogs_downloader.py 程序主要逻辑实现
├── config.ini.example 配置文件示例
├── main.py 程序入口
└── readme.md 自述文件
```
### Document
本项目API文档:[**Document**](https://charles94jp.github.io/cnblogs-blogger-downloader)
根据代码文档注释构建API文档:
```
pip install sphinx sphinx-rtd-theme
sphinx-build.exe -b html .\sphinx\source\ docs
```
注意`docs/lib/cnblogs-apiDoc.html` `typora.css`和`docs/.nojekyll`是手动添加进去的
## Links
其他能帮助拿回博客园数据的方法:
- 博客园官方[备份功能](https://www.cnblogs.com/super925/p/8093453.html):缺点是下载的文件是一个xml,不易于阅读及分离文章
- [InfoSpider](https://github.com/kangvcar/InfoSpider) ,缺点是它下载的是一个json文件,亦不能直接食用
<br></br>
本项目的开源协议为:[GPL-3.0 License](/LICENSE)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。
资源推荐
资源详情
资源评论
收起资源包目录
帮助博客园作者下载自己的随笔文章原稿,包括草稿,md原格式,保留分类。markdown 源码 爬虫 下载器.zip (80个子文件)
SJT-code
lib
cnblogs-apiDoc.md 5KB
cnblogs_api.py 2KB
.gitattributes 67B
main.py 564B
sphinx
make.bat 769B
Makefile 638B
source
lib
cnblogs_api.rst 127B
modules.rst 54B
index.rst 595B
cnblogs_downloader.rst 195B
main.rst 100B
conf.py 2KB
favicon.ico 17KB
LICENSE 34KB
readme.md 5KB
docs
lib
typora.css 10KB
cnblogs-apiDoc.html 83KB
cnblogs_api.html 9KB
modules.html 5KB
py-modindex.html 5KB
genindex.html 7KB
.nojekyll 0B
main.html 5KB
cnblogs_downloader.html 12KB
_sources
main.rst.txt 100B
lib
cnblogs_api.rst.txt 127B
modules.rst.txt 54B
index.rst.txt 595B
cnblogs_downloader.rst.txt 195B
search.html 4KB
searchindex.js 5KB
objects.inv 546B
_modules
lib
cnblogs_api.html 12KB
main.html 6KB
cnblogs_downloader.html 36KB
index.html 4KB
index.html 5KB
_static
plus.png 90B
file.png 286B
language_data.js 11KB
js
html5shiv-printshiv.min.js 4KB
html5shiv.min.js 3KB
theme.js 5KB
badge_only.js 934B
underscore-1.13.1.js 67KB
documentation_options.js 351B
underscore.js 19KB
jquery-3.5.1.js 281KB
css
badge_only.css 3KB
theme.css 127KB
fonts
lato-normal-italic.woff 321KB
Roboto-Slab-Bold.woff 86KB
lato-bold.woff2 181KB
Roboto-Slab-Bold.woff2 66KB
lato-normal.woff2 178KB
lato-normal.woff 302KB
fontawesome-webfont.eot 162KB
Roboto-Slab-Regular.woff2 65KB
fontawesome-webfont.woff 96KB
fontawesome-webfont.woff2 75KB
lato-bold-italic.woff2 189KB
lato-normal-italic.woff2 191KB
lato-bold-italic.woff 316KB
fontawesome-webfont.svg 434KB
fontawesome-webfont.ttf 162KB
Roboto-Slab-Regular.woff 84KB
lato-bold.woff 302KB
pygments.css 5KB
favicon.ico 17KB
searchtools.js 16KB
minus.png 90B
doctools.js 10KB
jquery.js 87KB
basic.css 14KB
img
example.png 567KB
logo.png 38KB
cookie.png 67KB
.gitignore 2KB
config.ini.example 324B
cnblogs_downloader.py 7KB
共 80 条
- 1
资源评论
JJJ69
- 粉丝: 6135
- 资源: 5674
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- pta题库答案c语言之排序4统计工龄.zip
- pta题库答案c语言之树结构7堆中的路径.zip
- pta题库答案c语言之树结构3TreeTraversalsAgain.zip
- pta题库答案c语言之树结构2ListLeaves.zip
- pta题库答案c语言之树结构1树的同构.zip
- 基于C++实现民航飞行与地图简易管理系统可执行程序+说明+详细注释.zip
- pta题库答案c语言之复杂度1最大子列和问题.zip
- 三维装箱问题(Three-Dimensional Bin Packing Problem,3D-BPP)是一个经典的组合优化问题
- 以下是一些关于Linux线程同步的基本概念和方法.txt
- 以下是一个简化的示例,它使用pygame库来模拟烟花动画的框架.txt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功