在阅读本文之前
要使用爱阅书香的网络功能,需要有相应的书源配置。我们不再提供默认的书源配置。请自行根据书源规则来配置自己的源!
当前收集的书源配置
有很多热心的小伙伴,提供了各式各样的书源配置。我将其整理了下。
点击导入无反应的,请使用苹果手机自带的浏览器safari打开。
若你有自己的书源,并愿意共享给别人使用,请将地址发给我。谢谢。 我将在博客及微信公众号(iosRead)上进行发布。
导入书源的方式
有非常多的方式导入书源,以下列举几种:
一鍵导入方式(6.2.0版本之后提供的新功能)
- 在书架的右上角菜单,选择书源配置。
- 打开右上角的同步,输入书源合集地址(如https://gitee.com/ift123/iFreeTimeBookConfigs),可输入多个地址。
- 点击获取书源配置,等处理完后将弹出一个导入界面。
- 点击右上角的一键导入就可以了。
ps:
此方式能保存书源地址,后续需要更新时,只需要点击获取书源配置就可以了,推荐使用。
更多导入方式
点击打开地址书源导入与管理
书源并非越多越好,满足你的需求就够了。 除了自定义书源之后,你还可以使用自定义来源
书源与来源的区别
先说明下所谓的自定义来源与自定义书源的区别,前者只是针对一个url。后者针对的是整个应用的配置。
- 来源:自动把你提供的url解析成一组章节信息,再从解析出来的章节信息中解析出对应的内容。基本无须你做什么工作。
- 书源:需要指定各种配置的请求信息与响应信息。可配置整个软件的所有数据接口。
自定义书源说明
从最根本上讲,就如你使用浏览器一样!
你配置了书源,爱阅书香就根据配置显示内容。这样,你想看什么内容,想对内容进行怎么样的过滤,都没问题。毕竟,你的手机,你做主嘛。
为帮助你达到这个目的,我们提供以下几个配置。实现一个配置,你能得到3星服务;实现2个配置,你能得到5星服务;实现7个配置!你可以召唤神龙,并能向其许一个愿望了(【开心的笑】如果神龙愿意见你的话)。
七大龙珠在此
- 书籍搜索:搜索出相关内容的一个配置。
- 列表详情:这是一个根据给定的地址,主要为了解析出书籍的章节标题和章节地址。默认处理方式为动态解析。
- 章节详情:解析出指定章节的内容。默认处理方式为动态解析。
- 书海配置:根据给定的规则,最终生成一组书籍信息。类似榜单,分类,书单都可以在这里完成
- 书籍详情:解析出书籍的详细信息,包含简介,封面,字数等,具体可参考配置界面的添加
- 多来源搜索:解析出多个来源,一般不需要用到。只有聚合类网站才会需要到。
- 关键词联想:当你在搜索界面,输入时进行的联想的配置,解析出一系列的联想词。
这七大龙珠,哦,不对,是这7个配置,并不需要都实现。最简单的就是只实现书籍搜索或者是书海配置就可以了。
所谓的配置,就是你指定一个地址(如你在浏览器中保存书签一样),再指点下这呆呆的小配置:访问URL前要做些什么,从网页得到内容之后,怎么把想要的ABC提取出来。这,就是传说中的爬虫技术!掌握此技能,就如掌握数理化,你将能横扫网络,纵横书海。从此,天下之广,也不过在于你弹指之间。
当然,这不容易达成。所以,我更为你准备了几大利剑,足于让你杀个七进七退。主要围绕两个中心:如何取得内容与如何解析内容
- 取得内容:输入一个URL或者是动态生成一个URL。
- 解析内容:提供了很多方式
- 使用xPathEx。具体可以访问xPathEx解析教程。简单方便,使用a.b.c的方式得到内容。其前缀为@ex:。5星推荐哦。(此方式需要6.2.1版本才支持,正在内测中哦)
- 使用xpath,这需要有一定基础,具体语法我就不提供了,可以百度下,很多教程的。其前缀为@xpath:。
- 使用json,这个需要内容是JSON才可以使用哦,一般访问的网站返回的都是HTML,只能使用xPath或xPathEx来处理。具体可以访问JSON解析教程。其前缀为@json:。
- 使用正则表达式,这里有教程。其前缀为@regex:。
- 直接使用 @def: 来定义一个字符串。
- 使用字符串,将内容当成是字符串进行处理,这里有教程。其前缀为@str:。
在写规则时,老是要写前缀是一件很麻烦的事。为减少麻烦,你可以根据书源返回结果的格式,设置书源中的高级配置,选择响应数据处理方式来指定固定的前缀。
常规的网站返回的是HTML,在响应数据处理方式中选择HTML/xPathEx。这样在解析时,若是使用xPathEx的规则来解析数据,则不需要再写@ex了。若是想使用其它的方式解析,则需要写前缀了。
这几种解析规则可以混合着用,比如使用默认的解析方式text(),然后再添加一个解析规则@regex:(?<=《).+?(?=》)。非默认的解析规则必须添加前缀。
书源配置界面上的说明
对App上的书源配置界面进行简单的说明。
- 名称:这是书源的名称。
- 首页:这是网站的主页,必须设置,当解析出来的地址是相对地址时,将自动使用首页提供的地址来转成绝对地址。
- 高级配置
- 权重:这个影响书源的排序。如你没有指定搜索配置的权重,则以此处的权重为主,多个书源将根据这个权重进行排序,然后按序进行搜索,其它配置与此类同。注意:高级配置中的权重是总权重,各个配置也可以有自己的权重,以各个配置(如搜索配置)的权重为主,当配置没有设定权重时,则使用总权重。
- 通用日期格式: 一般不需要设置。会自动识别的。支持:yyyy-MM-dd HH:mm:ss
- 配置说明:你想留下的说明信息。
- 配置密码:只有当你启用iCloud时才有效。设置密码后,只有本人才能看到具体的配置,对其他人来说,此配置只能使用。只能看到配置说明的内容。
- 书海分组名:相同名称的不同书源,将显示在一起。比如你可以把所有书源的此属于设置为“合并的书海”。则在书海无涯的界面上,就只有一个列表。
- 优先编码方式:编码方式的优先级别。
- 响应数据处理方式:对取得数据进行解析时,可以减少写前缀的麻烦。自动表示根据返回的内容格式,判断出相应的解析方式,HTML的话默认使用xPath。6.2.1版本已经将默认方式修改为 HTML/xPathEx
- 失败时使用动态解析:当无法解析出内容时,是否使用动态解析。这是你可以不写列表详情与章节详情配置的根本所在。
- Cookies:一般启用
- 创建HTTP对象:留空就可以了,也可以使用Http.CreateInstance来创建默认Http对象。
- 请求时参数值处理:这个与HTTP的请求有关,若参数有中文,
- 网站要求用GBK编码时,可以使用JxdSecuritySub.Gb2312Encoded:value来格式化。
- 要求使用Base64时,可使用 JxdSecuritySub.Base64EncodeByString:value
- 默认使用UTF进行格式化
- 自定义HTTP头:可以在这里修改Http请求头的相关字段,比如user-agent.或者是网站要求的自定义信息
下面介绍下各个配置的功能与作用
搜索配置
当你在搜索配置上输入一个关键词后,就是调用此配置进行处理的。
为了取得搜索结果,需要在配置上输入
- 请求方式:选择GET或者POST
- 地址和参数:可分开写,也写在一起。一般关键词的值可以用%@来替代,可以用@calc(pageIndex + 1)来得到下一页的序号。如 http://icc.one/search.php?key=%@&page=%@calc(pageIndex + 1).pageIndex是从0开始的。
更多请求配置:
- 最大请求页数:一定要指定,表示一次搜索最多的搜索页数。
- HTTP引用:有些网站一定要指定引用地址才可以访问,因网站而异。
- 下一页请求方式:GET或POST。
- 下一页地址:可以通过写固定的地址,也可以从上一页中解析出下一页的地址。
- 下一页参数:这两都与之前的差不多
响应配置 有了地址后,就可以解析出内容了,这个配置要出一组书籍信息,具体字段按界面上给出的填写就可以。
- 分割为多个书籍信息:一般为多个结果,用这个字段的解析规则,将内容分割为多个。
- 书名:指示出如何解析出书籍的名称
- 来源解析器:最关键是指示出如何解析出章节目录地址。你也可以解析出其它的内容,如你使用辅助信息解析出一个ID,之后在别的配置中,可以使用 source.helpId 的方式来取出此信息后格式出相应的URL。
- 当无法解析出目录地址时,可以解析出书籍详情地址,然后在书籍配置中将书名,作者,目录地址解析出来。
更多响应配置
- 优先编码方式:一般不需要设置,能自动猜测出来,当结果为乱码时,可以修改后重新去请求数据试试。
- 响应数据处理方式:与高级配置中的说明一致,若设置,则以此配置为主。
请求测试
在你完成如何获取内容的配置后,就可以点击测试请求进行请求数据,若配置无误,此时可查看以下内容
- 查看原始内容:这是服务器返回的原始数据
- 查看分析结果:这是根据你写的规则,解析出来的数据。
- 查看HTTP协议:这是根据你的请求配置生成的HTTP请求,可以看你生成的URL,参数是否正确
另外,若你成功配置了如何访问下一页的规则,则界面的最下面还有当前第X页,点击访问下一页的功能,这个也是在搜索时可翻页的关键,此时请记得设置最大请求页数
测试响应
请求到数据后,可以打开测试响应界面。这样当你修改一个解析规则时,点击同步后,可在响应界面实时刷新下,看下解析出的内容正确与否。
搜索配置的例子
6.2.1版本,使用最新的解析方式(xPathEx)
- 创建书源,输入名称笔趣宝与主页https://www.biqubao.com
- 点击书籍搜索,输入地址https://www.biqubao.com/search.php?keyword=%@
- 在响应配置的分割为多个书籍信息中输入:div[@class=result-item result-game-item]
- 书名中输入:h3.span
- 作者中输入:div[@class=result-game-item-info].span[1]
- 点击来源解析器,添加字段章节目录地址,输入:a[0].@href
- 点击请求测试界面,看看生成的数据吧。在网站没有改版的情况下,现在这个书源已经可以用了。去禁用掉其它书源,只启用此书源配置,然后去搜索书源看看吧。
ps: 进阶尝试,可自行添加封面,简介的解析。这里我就不提供了。
6.2以之前版本的步骤
- 创建书源,输入名称测试书源与主页https://www.22ff.org/
- 点击书籍搜索,输入地址https://www.22ff.org/s_%@
- 点击请求测试
- 在响应配置的分割为多个书籍信息中输入://ul
- 书名中输入:.//li[@class=”neirong1”]/a[1]/text()
- 作者中输入:.//li[@class=”neirong4”]/a[1]/text()
- 点击来源解析器,添加字段章节目录地址,输入:.//li[@class=”neirong1”]/a[1]/@href
- 重新进入请求测试界面,点击重新请求
- 点击查看分析结果,对比下数据是否正确,若正确,则已经完成
这个简单的书源就算是配置成功了。你可以禁用其它的所有书源,只启用此配置,再使用爱阅的搜索界面去搜索书籍。看下是否正确
注意: 要成功生成一个书籍详情,必须存在书名,作者和章节目录地址。
当你能成功写一个搜索配置时,其它配置对你来说,其实已经很简单了。加油,少年!
列表详情
此配置是在更新书籍章节列表时经常被使用。目的是把每一个章节的标题与对应的地址解析出来。
此配置的默认地址信息就是你搜索配置中得到的章节目录地址。
它必需是一个可访问地址。
若不写此配置,则采用智能分析技术,动态解析出最基本的数据。
此配置的规则与搜索类同,不再复述。
章节详情
此配置在获取具体的章节内容时使用,目的是找内容获取出来。
此配置的默认地址信息就是列表详情中解析出来的章节地址。
它必需是一个可访问的址
若不写此配置,则采用算法,动态分析出正文内容。(算法不一定100%正确的哦,要看具体的数据)
书海无涯
这个也许比较中二的名字,是突发奇想的。这个功能主要是想把所有你喜欢的数据汇合在一起,通过一系列的处理,生成一组书籍的信息。方便你慢慢的查阅,而不是通过搜索的方式而来。
这块的配置比其它的要复杂那么一点点。以下分别进行说明
配置应用类型
支持类型:
- 书海无涯:这个就是主界面菜单上的书海无涯,显示在界面的
- 热词:主要是获取一组热门的书籍名称,应用在搜索界面上的热词
- 应用所有:同时支持以上两者
分类地址配置
支持:
- 动态地址:给定一个地址,从这个地址的响应内容解析出生成一组地址信息。
- 固定地址:直接添加一组地址就可以。
请求配置
从分类地址配置中,分成了一组地址信息,请求配置,可对这些地址做些处理之后,得到的地址再去请求数据。
响应配置
这块的规则与书籍搜索配置基本一样,一般可以从书籍搜索配置中复制到此,再进行必须的修改就可以了。
书籍详情配置
此配置是为了获取更详细的书籍信息,具体字段信息,请参考界面。
多来源搜索配置
此配置适用于聚合型的站点,就是此网站上的书籍都有多个来源时,可使用此进行配置。
关键词联想配置
在你搜索界面上输入关键词,进行联想的接口。比如你输入“中”,要联想出“中国”或是“中州”,则是由此配置生成。