README.md

    epub-crawler

    用于抓取网页内容并制作 EPUB 的小工具。

    安装

    通过 pip(推荐):

    pip install EpubCrawler

    从源码安装:

    pip install git+https://github.com/apachecn/epub-crawler

    使用指南

    crawl-epub [CONFIG]
    
    CONFIG: JSON 格式的配置文件,默认为当前工作目录中的 config.json

    配置文件包含以下属性:

    • name: String

      元信息中的书籍名称,也是在当前工作目录中保存文件的名称

    • url: String(和list二选一)

      目录页面的 URL

    • link: String(若url非空则必填)

      链接<a>的选择器

    • list: [String](和url二选一)

      待抓取页面的列表,如果这个列表不为空,则抓取这个列表

      该配置项会覆盖urllinkexternal

    • title: String(可空)

      文章页面的标题选择器(默认为title

    • content: String(可空)

      文章页面的内容选择器,为空则智能分析

    • remove: String(可空)

      文章页面需要移除的元素的选择器

    • credit: Boolean(可空)

      是否显示原文链接

    • headers: {String: String}(可空)

      HTTP 请求的协议头,默认为{"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36"}

    • retry: Integer(可空)

      HTTP 请求的重试次数,默认为 10

    • wait: Float(可空)

      两次请求之间的间隔(秒),默认为 0

    • timeout: Integer(可空)

      同时设置 HTTP 请求的连接和读取超时(秒)

      会覆盖connTimeoutreadTimeout

    • connTimeout: Integer(可空)

      HTTP 请求的连接超时(秒),默认为 1

    • readTimeout: Integer(可空)

      HTTP 请求的读取超时(秒),默认为 60

    • encoding: String(可空)

      网页编码,默认为 UTF-8

    • optiMode: String(可空)

      图片处理的模型,'none'表示不处理,其它值请见 imgyaso 支持的模式,默认为'quant'

    • colors: Integer(可空)

      imgyaso 接收的colors参数,默认为 8

    • imgSrc: [String](可空)

      图片源的属性,默认为["data-src", "data-original-src", "src"]

    • proxy: String(可空)

      要使用的代理,格式为<protocal>://<host>:<port>

    • checkStatus: Bool(可空)

      是否检查状态码。如果为true并且状态码非 2XX,当作失败。默认为False

    • textThreads: Integer(可空)

      爬取文本的线程数,默认为 5

    • imgThreads: Integer(可空)

      爬取图片的线程数,默认为 5

    • external: String(可空)

      外部脚本的路径。脚本中可定义get_tocget_article函数来自定义获取目录和正文的逻辑。

      get_toc(html: string, url: string): [string]

      接受页面 HTML 和 URL,返回目录列表

      get_article(html: string, url: string): {'title': string, 'content': string}

      接受页面 HTML 和 URL,返回字典,title键是标题,content键是正文

      该配置项会覆盖linktitlecontent,但不会覆盖list

    • sizeLimit:String(可空)

      EPUB 大小限制,格式为【数字+字母单位】,默认为100m

    用于抓取我们的 PyTorch 1.4 文档的示例:

    {
        "name": "PyTorch 1.4 中文文档 & 教程",
        "url": "https://gitee.com/apachecn/pytorch-doc-zh/blob/master/docs/1.4/SUMMARY.md",
        "link": ".markdown-body li a",
        "remove": "a.anchor",
        "headers": {"Referer": "https://gitee.com/"}
    }

    协议

    本项目基于 SATA 协议发布。

    您有义务为此开源项目点赞,并考虑额外给予作者适当的奖励。

    赞助我们

    另见

    项目简介

    用于抓取网页内容并制作 EPUB 的小工具。

    🚀 Github 镜像仓库 🚀

    源项目地址

    https://github.com/apachecn/epub-crawler

    发行版本

    当前项目没有发行版本

    贡献者 1

    W wizardforcel @wizardforcel

    开发语言

    • Python 98.9 %
    • Shell 1.1 %