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

优采云 发布时间: 2021-11-04 13:03

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

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

  主要学习资料有3个,就是Adding your 最喜爱的新闻网站,介绍了爬取网页的基本方法。API 文档 forrecipes 介绍了基本的配方编写接口 (API),包括参数设置和方法调用。其实就是研究子类的接口,然后再研究一些recipe例子。学习完这些内容后,您应该可以完成食谱的准备工作了。当然,因为菜谱是用python写的,所以学习python是必不可少的。这里我只想介绍一下我自己学习界面的心得:

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

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

  1、title =_('未知消息来源')

  通常设置生成的电子书的标题。

  2、描述=你''

  使用几行文本来描述此配方捕获的内容。一开始是GUI界面下的一系列菜谱描述。

  3、__author__= __appname__

  这个食谱的作者

  4、requires_version= (0,6,0)

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

  5、language='und'

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

  6、max_articles_per_feed = 100

  当没有 文章 日期时,使用每个提要可以下载的最大 文章 数。默认为100。 文章 old_article 参数通常在有日期时使用。

  7、oldest_article= 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=无

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

  15、summary_length = 500

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

  16、no_stylesheets = False

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

  17、remove_javascript=真

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

  18、needs_subscription=假

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

  19、center_navbar = True

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

  20、编码=无

  如果网页的字符集编码不正确,字符集编码集通常为“latin1”和“cp1252”。如果设置为 None,代码将被自动检测。如果是可调用的,调用时有两个参数,recipe对象和解码后的源文件,返回解码后的源文件。

  21、use_embedded_content = 无

  一般情况下,我们根据嵌入内容的长度来推测feed会嵌入文章的所有内容。该参数具有三个值。当它设置为 None 时,会进行猜测;当设置为True时,则假定feed收录文章的所有嵌入内容;当它设置为 False 时,提要不收录 文章 的嵌入内容。

  22、articles_are_obfuscated=假

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

  23、reverse_article_order=假

  设置为 True 时,Feed 中 文章 的顺序将被颠倒。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线