抓取网页生成电子书(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 时,将反转提要中 文章 的排序。