Code Monkey home page Code Monkey logo

zhihu2kindle's Introduction

关于Zhihu2kindle

Zhihu2kindle项目提供一系列脚本,将知乎、果壳等网站的内容批量获取并解析打包成mobi格式供Kindle阅读。

img

img

img

使用方法

安装Python

本程序使用Python3编写,您可前往Python官网下载大于Python3的版本。

安装依赖库

切换到本项目目录下后,在控制台输入如下命令安装

pip install -r requirement

配置

配置文件在config目录下。配置文件其实是一个yml文件。参考配置脚本两章配置好配置文件。

config.yml

# config.yml

# KINDLEGEN_PATH:KindleGen.exe程序所在路径
# windows
KINDLEGEN_PATH: '.\zhihu2kindle\bin\kindlegen_windows.exe'

# linux
# KINDLEGEN_PATH:'.\zhihu2kindle\bin\kindlegen_linux'

# SAVE_PATH(可选):全局保存路径。优先使用各个脚本独立的`SAVE_PATH`。
# 注意必须为绝对路径!必须为英文
SAVE_PATH: 'D:\zhihu2kindle\files'

# LOG_PATH(可选):日志文件的路径 
LOG_PATH: '.\zhihu2kindle\log\'

# LOG_LEVEL:日志等级 
LOG_LEVEL: 'DEBUG'

# WRITE_LOG(可选) : 是否写日志文件,默认否
WRITE_LOG: false

# DOWNLOADER_WORKER(可选):启动Downloader的数量,默认为1,建议为1~3。
DOWNLOADER_WORKER: 3

# PARSER_WORKER(可选):启动Parser的数量,默认为1,建议为1。
PARSER_WORKER: 1

# RESULTER_WORKER(可选):启动Resulter的数量,默认为1,建议为1
RESULTER_WORKER: 1

email.yml

# email.yml

# EMAIL_USERNAME(可选):发送给Kindle的邮箱地址
EMAIL_USERNAME : '[email protected]'
# PASSWORD(可选):发送给Kindle的邮箱授权码(现在大部分邮箱都是用授权码,不懂百度)
PASSWORD : '12341323dasassf'
# SMTP_ADDR(可选):发送给Kindle的邮箱SMTP。一般,163邮箱的为`smtp.163.com`;QQ邮箱为`smtp.qq.com`。
SMTP_ADDR : 'smtp.qq.com'

zhihu_collection.yml

# zhihu_collection.yml
# HEADER: 头部信息,记录知乎的登录信息
HEADER: "里面的信息一定要用双引号喔!"

获取办法

  • 谷歌浏览器登录知乎
  • 右键-“检查”
  • 在弹出的窗口中选择“Network"
  • 刷新网页
  • 按图选择,复制

image-20210810145640607

image-20210810145756371

  • 该编码即为HEADER头部信息,记录知乎的登录信息

因为有效期的缘故,一般建议30天更新一次HEADER信息

使用

如使用本程序下载知乎某收藏夹https://www.zhihu.com/collection/59744917

切换到本项目目录下后,在控制台输入如下命令:

 python .\zhihu2kindle_cli.py zhihu_collection --i=59744917  --book_name=我的推送

电子书文档保存在配置项的SAVE_PATH文件夹中。

推送到Kindle

如果需要推送到Kindle,需要配置email.yml文件。

 python .\zhihu2kindle_cli.py zhihu_collection --i=59744917  --book_name=我的推送 [email protected]

注意,该推送将会推送目标文件夹下面所有mobi文件。

增量更新

在运行过一次Zhihu2kindle之后,在目标文件夹下面出现一个名为article.db的数据库文件。Zhihu2kindle每次下载的时候都会检查这个数据库,避免重复下载。

举个例子,比如我知乎专门有一个收藏夹收藏要推送到Kindle的文章。每天我在知乎上收藏十篇文章到这个收藏夹,我希望使用Web2kinlde每天仅下载新增的十篇文章而不是把全部文章都获取下来。那么在运行一次程序,获取191640375所有内容之后。我第二天再往这个收藏夹新增十篇文章,当我再次运行,Zhihu2kindle会仅仅下载新增的那十篇文章而不会把收藏夹里全部文章重新下载一遍。

这个功能称之为增量更新。如果你不需要这种功能,你可以手动删除目标文件夹下面的article.db文件,或删除该数据库里面的指定条目数。

任务调度

本程序支持多用户、多任务进行推送操作。并且可以以天或者周为单位,自动调度任务。

使用方法

  • 生成数据库。python scheduler.py
  • 等看到等待xx秒信息出现的时候,说明数据库已经建立,结束程序。
  • 使用SqliteStudio工具打开scheduler.db,插入任务信息。
    • COLLECTION_ID:知乎收藏夹ID
    • USERNAME:用户名,任意现阶段无用
    • EMAIL:kindle邮箱
    • BOOKNAME:书名
  • 运行命令python scheduler.py,既可。在运行过程中,插入新任务信息,程序会在下一周期自动跑。

zhihu2kindle's People

Contributors

wax8280 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.