# TiebaBackup
**Repository Path**: hui-shao/TiebaBackup
## Basic Information
- **Project Name**: TiebaBackup
- **Description**: :date: 一个用于备份百度贴吧帖子的python脚本
- **Primary Language**: Python
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 1
- **Created**: 2020-10-01
- **Last Updated**: 2022-02-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 百度贴吧帖子备份
该分支基于master修改,是适合服务器部署的线上版本。
---
## Features
- 去除用户交互(参数请自行编辑脚本配置)
- 在"只看楼主" 模式默认开启保存楼中楼
- 接入 Server酱 消息推送
- 自动备份已爬取帖子,防止覆盖数据时出现意外(三天以前的备份自动删除)
- 支持自动拷贝备份文件(Html)到网站目录


## How to use:
#### 环境配置
**Linux:**
```bash
apt-get install python3 python3-pip
pip3 install -r requirements.txt
python3 main.py
```
**Windows:**
在[ 官网 ](https://www.python.org/downloads/)下载python3.6或以上版本
```cmd
pip install -r requirements.txt
python3 main.py
```
#### 参数说明
| Var name | Value | Type | Description |
|:------------: |:--------------------:|:-------------:|:-------------------------------------------|
| pids | [12345678, 12345679] | list (int) | 帖子 ID 列表 |
| DirNames | ["dir1", "dir2"] | list (string) | 用于保存帖子的目录名,与上述每个帖子一一对应。
若留空( "" ),则使用"吧名-帖子标题"
p.s. 不推荐留空,系统对目录长度通常有限制 |
| overwrite | 1 / **2** | int | 是否覆盖已备份的文件
1为跳过,2为覆盖,其他值交互 |
| copy | 0 / **1** | int | 是否把备份好的文件拷贝到网站目录
0为否,1为是,其他值交互 |
| sckey | "xxxxxxxxxxx" | string | 用于Server酱推送的Key,没有请留空
可以到 [这里](http://sc.ftqq.com/3.version) 获取 |
| lz | True / False | bool | 是否使用“只看楼主”模式 |
| comment | **True** / False | bool | 是否包含楼中楼(评论) |
#### 其他说明
- 在不同的平台下,需要注意 py 文件的 “换行符(Line-Ending)”:`CRLF(Windows) / LF(Unix)`
- 如需插入自定义html代码,请修改 `Init(pid, overwrite)` 函数中的 `Write()` 部分;如需添加网站资源文件,请修改该函数中 `shutil.copy()` 部分,并把文件放入程序目录下的 "resources" 文件夹
#### 部署自动化(Linux)
使用 `crontab -e` 创建自动化,表示每天 11:30 和 23:30 时执行备份。例如:
```bash
30 11,23 * * * "python3" "/root/tieba_backup/main_all.py" >> /root/log1.txt 2>&1
```
还可以配合如下规则,以此实现每周六自动删除日志:
```bash
0 23 * * 6 rm /root/log1.txt
```
~~另外建议 `vim .bashrc` , 注释掉其中的 `alias rm='rm -i'` 和 `alias cp='cp -i`,否则可能因为需要交互,导致程序暂停~~
## Change log:
---
#### 2020.03.09
1. 适配 批量模式(list + for)
2. 优化 控制台信息输出的内容
3. 优化 Server酱推送消息内容的排版
4. 修复一些Bug:
- 删除3天前的备份文件时,因“目录非空,无法删除”而报错的问题
- 程序运行目录与脚本文件所在目录不一致时,无法找到网页文件并复制的问题
#### 2020.03.06
1. 支持 自动拷贝备份文件(html)到网站目录
2. 为网页新增 icon 和 title ,可能缓解某些情况下卡顿的问题
3. 修复一些"小Bug"
#### 2020.03.05
1. 诞生