Code Monkey home page Code Monkey logo

epub-crawler's Introduction

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-crawler's People

Contributors

wizardforcel 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.