极光自定义站源教程

前段时间上线了自定义站源功能,不过因为比较粗糙,就没有公布教程,然后经过一段时间打磨后,感觉比之前版本要好用很多,于是整理了下使用教程,帮助大家快速上手。

原理:基于对html文档元素的解析,采用jsoup,jsoupXpath等框架,调用其提供的获取html元素的API,来解析网页元素,为我们所用。当我们编写完这段规则,其实我们已经写出一个完整的爬虫了。

自定义片源功能模块借鉴于开源项目“阅读”,大部分语法可以通用,也可能遇到相同的问题。

相关资料链接:

  • 相关语法及坑点:https://github.com/mabDc/cartoon-rule/blob/master/RuleSupport.md

语法规则测试:

  • jsoup语法测试 https://try.jsoup.org

  • JSonPath语法测试 http://jsonpath.herokuapp.com

- 支持jsoup select语法,以@css:开头,语法见http://www.open-open.com/jsoup/selector-syntax.htm- 支持XPath语法,采用的这个库https://github.com/zhegexiaohuozi/JsoupXpath, 语法兼容方面请看自己查看- 支持JSonPath语法,以@JSon:开头,语法见 https://blog.csdn.net/koflance/article/details/63262484- JsonPath获取字符支持此种写法xxx{$._id}yyy{$.chapter}zzz- 支持用js处理结果,以<js>开头</js>结尾,结果变量为result,网址变量为bastPath,位置任意,按顺序执行 如 @JSon:$.link<js>'http://chapterup.zhuishushenqi.com/chapter/' + encodeURIComponent(result)'</js> 如 <js>result=result.replace(/[\\w\\W]*url:'(.*?)'[\\w\\W]*/,\'$1\'); java.ajax(result)</js>class.panel-body content-body content-ext.0@html- ##替换内容##替换为,支持正则- 可以用@put:{key:rule, key:ruel}保存变量其它地方使用,key为变量名, rule为完整的规则- 可以用@get:{key}获取变量,key为变量名- 解析规则时会先@put变量,然后,@get变量,替换@get:{key}- 可以使用@Header:{key:value,key:value}定义访问头,添加在Url规则头部,或尾部- 除去封面地址,其它地址都支持搜索地址的表达方式- 自定义js方法//获取网页内容,url支持搜索url规则java.ajax(url)//base64解码java.base64Decoder(string)//设置需解析的内容Objectjava.setContent(html)//输入规则String获取文本列表List<String>java.getStringList(rule)//输入规则String获取文本java.getString(rule)//输入规则获取节点列表List<Object>java.getElements(ruleStr)

简单片源规则说明

  • 片源规则基于HTML标记,如class,id,tag等

  • 想要写规则先要打开网页源代码,在里面找到想要获取内容对应的标签,

  • Chrome可以在网页上右击点击检查可以方便的查看标签

极光影院规则示范及字段说明:

{    'searchActor': 'class.detail@tag.p.1@text',    'searchArea': 'class.detail@tag.p.2@text##地区:(.*)年份:##$1###',    'searchDesc': 'class.detail@tag.p.3@text',    'searchDirector': 'class.detail@tag.p.0@text',    'searchImg': 'tag.a.0@data-original',    'searchList': 'class.container@class.col-lg-wide-75@class.stui-pannel_bd@tag.ul@tag.li',    'searchName': 'class.detail@tag.h3@tag.a@text',    'searchNoteUrl': 'tag.a.0@href',    'searchRemark': 'tag.a.0@tag.span.1@text',    'searchUrl': 'https://www.wuguiyy.com/search/searchKey----------searchPage---',    'searchYear': 'class.detail@tag.p.2@text##年份:(.*)##$1###',    'httpHeader': '',    'httpUserAgent': '',    'loginUrl': '',    'detailActor': '',    'detailArea': '',    'detailDesc': 'class.detail-sketch@text',    'detailDirector': '',    'detailRemark': '',    'detailYear': '',    'enable': false,    'enableFind': false,    'exclude': 'https://g.shumafen.cn/api/file/3e10b917f6921065/',    'findActor': '',    'findArea': '',    'findDesc': '',    'findDirector': '',    'findImg': '',    'findList': '',    'findName': '',    'findNoteUrl': '',    'findRemark': '',    'findUrl': '',    'findYear': '',    'parserType': '4',    'parserUrl': '',    'play': '',    'playList': 'tag.li',    'playName': 'tag.a@text',    'playUrl': 'tag.a@href<js>'https://www.wuguiyy.com' + result<\/js>',    'serialNumber': 0,    'sortName': 'tag.h3@text',    'sortNameList': 'class.playlist@class.stui-pannel__head',    'sortUrlList': 'class.stui-content__playlist',    'sourceGroup': '',    'sourceName': '乌龟影院',    'sourceType': '',    'sourceUrl': 'https://www.wuguiyy.com',    'weight': 0}

以上是乌龟影院的完整规则代码,目前极光只支持用规则来搜索影片,暂时不支持规则来显示影片分类列表,不过以后会逐步添加支持。

这里,我们参考乌龟影院的规则,简单介绍一下。

sourceUrl是片源网站的域名,必填,用于识别片源和解析播放时用。

sourceName 是片源网站的名称,必填,且不要与已有片源名称重复。

sourceGroup预留字段,可不填,今后可用于对资源分组整理用。

weight 权重,预留字段,可不填,今后可用于搜索结果排序,靠前显示权重大的片源。

exclude 过滤地址,一些资源播放解析后第一个地址是不能要的,要在这个字段过滤掉。

parserType 解析类型,目前内置4种解析类型:

类型通过下拉菜单选择即可。

目前的规则只支持搜索,主要流程为:搜索影片关键词->获取搜索结果->获取每个搜索结果的详情页面,下面对主要字段说明一下。

以search开头的字段,均是与搜索流程相关的字段。

例如:搜索关键词需要先有搜索接口地址:

'searchUrl': 'https://www.wuguiyy.com/search/searchKey----------searchPage---',

以detail开头为详情页解析,就点击搜索结果进入的详情页面。

例如:detail_desc,影片简介。其中,class定位元素所在位置,@text为获取文本。

'detailDesc': 'class.detail-sketch@text',

以play开头为播放地址解析,playList获取播放列表。playName获取播放剧集的名称,playUrl获取播放剧集的播放地址。sortName是播放线路名称,sortNameList是播放线路列表。sortUrlList是播放线路地址。

在编辑器页面,我们可以选择对单条规则执行结果进行调试:

在规则文本不为空的时候会显示调试按钮,点击调试:

输入搜索关键词,点击run按钮,可以看到规则执行日志,上图是乌龟影院完整规则的调试日志,可以执行到底,并显示各个规则获取的结果,如果你只写了一半,那也可以查看执行到所写规则的位置。下面的编辑框可以修改当前规则,并支持实时更新到调试器里。点击重置可以恢复第一次打开调试窗口时的内容。

其他不再一一列举了,主要步骤就是,用class、id、tag这类定位符找到元素所在位置,提取元素文本。由于算法部分直接改编自阅读项目,所以阅读的规则大部分特性都是支持的,例如支持js,还有支持jsoup和xpath混合解析,就是说,如果你对jsoup的解析不太满意,也可以使用xpath的语法,软件内部可以自动识别并解析,之前我写scrapy爬虫时用的就是xpath,蛮好用的,有兴趣的也可以学习一下。

先写这么些,更详细的随后陆续更新。

(0)

相关推荐

  • 自定义站源规则收集贴

    为方便大家自己动手写站源规则,特整理一些站源,供大家学习参考: 规则1: { 'detailActor': '', 'detailArea': '', 'detailDesc': 'class.det ...

  • 站源导入教程

    点击查看:自定义网站搜索教程 自己可以编辑好Json格式的规则,然后APP中网页规则页面右上角菜单中选择Json导入,粘贴规则即可,支持多个导入.网址导入则必须网址请求后返回的内容为如下的规范Json ...

  • 【微精品】houdini16自定义shape形态教程+数据资产插件

    --  微资讯 · 微课程  -- 利用零碎时间,走上超神之路! houdini16更新的一个界面功能就是可以让节点有多重形状,还是非常可爱的.定义这种形状houdini使用的jason格式.今天两部 ...

  • 「翔博精选指标」K线自定义,和谐源码(通达信公式 主图 源码 测试图)

    {公式名称: K线自定义 公式描述:  参数数量: 2 参数1: N, 最小: 0, 最大: 1, 缺省: 1 参数2: X, 最小: 1, 最大: 10, 缺省: 2, 日线: 1 公式类型: 技术 ...

  • 通达信自定义数据库详细教程

    最近有不少老乡的服务需求要用到自定义数据库,于是,觉得有必要进行技能培训,为专业化发展引路,为全方面成长赋能. 一,通达信扩展数据库. 扩展数据库利用股软内部数据执行公式计算.得出每一个K线数据点的计 ...

  • Kali换源教程

    一.打开 /etc/apt/sources.list文件 两种方法:leafpad /etc/apt/sources.list 或者 vim /etc/apt/sources.list 我用的是 le ...

  • 超详细傻瓜iPhone使用自定义来电铃声教程

    没错,这是一篇"有史以来"最详细为iPhone设置自定义来电铃声的方法,不需要用到其他任何工具,完全用Mac上自带的应用即可搞定. 还等什么,Let's GO!

  • 自定义网站搜索教程

    点击查看:站源导入教程 1.基本原理与参数 自定义站源规则,说白了就是APP直接请求所填的搜索网址,得到返回的 html 后,根据对应标签来定位,获取指定内容包括: text(也就是文字),href( ...

  • ZYPlayer244手机版:支持影视聚合搜索、播放(附导源教程)

    [软件名称]:ZYPlayer244手机版 [软件版本]:2.4.4手机版(2021年1月5日更新) [软件大小]:13.3MB [支持系统]:Android,4.4+及更高版本 [测试系统]:小米 ...