抓取网页生成电子书(calibre网站的在线帮助文档无疑是最基本的学习资源)

优采云 发布时间: 2022-03-01 12:00

  抓取网页生成电子书(calibre网站的在线帮助文档无疑是最基本的学习资源)

  calibre 可以抓取网页并生成各种格式的电子书。您可以通过输入一些数据使用GUI来实现简单的自动页面爬取。主要用于RSS。您还可以使用高级功能来实现更复杂的网页抓取。但是要爬取一些比较复杂的网页内容,还是需要自动写一个PYTHON程序,也就是写一个recipe。calibre网站的在线帮助文​​档无疑是最基本的学习资源。

  学习资料主要有三本,分别是添加你喜欢的新闻网站介绍爬取网页的基本方法。食谱的 API 文档介绍了基本的食谱编写接口 (API),包括参数设置和方法调用。其实就是研究子类的接口,再研究一些菜谱例子。学完这些内容,应该就可以完成菜谱的编写了。当然,因为菜谱是用python写的,所以学习python是必不可少的。这里只想介绍一下我学习界面的心得:

  写菜谱,学习设置界面参数是第一步。其实通过设置参数,可以爬取一些简单的网页,生成一定质量的电子书。

  API中列出了所有的接口参数,一共48个,并给出了一些解释。更多细节可以看源码,源码前面部分,定义了这48个参数,有更详细的解释。这些参数有些是独立可设置的,有些是互斥的,设置一个,另一个不起作用。有些,如果设置为 true,需要实现一个方法。大致如下:

  1、title =_('未知新闻来源')

  对于生成的电子书的标题,通常是设置的。

  2、描述=你''

  使用几行文字来描述这个食谱爬取的内容。原本是对GUI界面下一系列菜谱作用的描述。

  3、__author__= __appname__

  这个食谱的作者

  4、requires_version= (0,6,0)

  执行此配方所需的最低版本 calibre,默认为 0.6.0

  5、语言='und'

  网页内容中使用的语言必须符合 ISO-639 编码,并且长度必须为 2-3 个字符。

  6、max_articles_per_feed= 100

  每个供稿的最大 文章 下载次数,在没有 文章 日期的情况下使用。默认为 100。文章oldest_article 参数通常在有日期时使用。

  7、最旧的文章= 7.0

  最早下载的 文章 是几天前。默认为 7 天,单位为天。如果 文章 有日期,则此参数有效。

  8、递归= 0

  网页中链接的递归级别数。默认情况下,不执行递归下载。

  9、延迟=0

  连续下载时,两次下载之间的时间间隔,以浮点数表示,单位为秒。

  10、publication_type='未知'

  发布类型,要爬取的内容类型,如报纸(newspaper)、杂志(magazine)、博客(blog)等。如果设置为None,则没有类型,该参数将作为元数据数据并写入 opf 文件。

  11、simultaneous_downloads=5

  同时下载的数量,如果服务器有限制,则设置为 1。delay`>0时,自动减为1,默认为5

  12、超时= 120.0

  从服务器下载的最大时间限制,超过这个时间就是超时。单位为秒,默认为 120 秒。

  13、timefmt= ' [%a, %d %b%Y]

  首页显示的日期格式,默认格式为日、月、年

  14、feeds=无

  用于下载的 feed,可以是 ``[url1,url2, ...]`` 或 ``[('title1', url1), ('title2', url2),. ..]`` 两种形式。

  15、summary_length= 500

  简短描述的最大字符数,默认为 500 个字符。

  16、no_stylesheets=False

  指示是否下载和使用原创网页的样式表。默认是下载使用。当设置为 True 时,原创样式表将不会被下载和使用。

  17、remove_javascript=真

  是否删除下载网页中的 javascript 脚本。默认是删除脚本。

  18、needs_subscription=False

  下载时是否登录,如果为True,GUI界面会询问登录用户名和密码。如果设置为“可选”,则登录名和密码是可选的。

  19、center_navbar=真

  生成的电子书的目录是否居中对齐。默认为居中对齐,False 为左对齐。

  20、编码=无

  网页的字符集编码不正确时要设置的字符集编码,通常是“latin1”和“cp1252”。如果设置为无,将自动检测编码。如果它是可调用的,则使用两个参数调用它,即配方对象和解码的源文件,并返回解码的源文件。

  21、use_embedded_content=无

  通常,我们会根据嵌入内容的长度猜测提要将嵌入所有 文章 内容。该参数具有三个值。当设置为 None 时,将进行猜测;当设置为 True 时,假定提要收录所有嵌入的 文章 内容;当设置为 False 时,提要不收录嵌入的 文章 内容。

  22、articles_are_obfuscated=False

  默认为False,文章更方便抓取。如果设置为True,则表示文章不易爬取,而较难爬取的文章页面将通过实现get_obfuscated_article方法进行处理。

  23、reverse_article_order=False

  当设置为 True 时,将反转提要中 文章 的排序。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线