Skip to main content

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

Project description

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 协议发布。

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

赞助我们

另见

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

EpubCrawler-2023.7.9.2.tar.gz (11.0 kB view hashes)

Uploaded Source

Built Distribution

EpubCrawler-2023.7.9.2-py3-none-any.whl (14.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page