第一步:我们先复制一份原来的规则做模板(图)

优采云 发布时间: 2021-08-09 01:21

  第一步:我们先复制一份原来的规则做模板(图)

  第 1 步:让我们复制原创规则作为模板。比如我今天演示的采集站点是一个叫feiku的小说站点,那么我将我复制的模板规则的副本命名为dhabc。 xml 这个主要是为了方便记忆。第二步:我们在采集器中运行规则管理工具,打开后加载,我们只是将其命名为dhabc。 xml XML文件第三步:开始正式写规则RULEID(规则编号)这个任意GetSiteName(站点名称)这里我们写8E小说GetSiteCharset(站点代码)这里我们打开找到charset=这个=后面的数字就是我们需要的站点代码我们找到的代码是gb2312 GetSiteUrl(站点地址)。不用说,写NovelSearchUrl(网站搜索地址)。这个地址是根据每个网站程序的不同得到的,但是有一个通用的方法是通过抓包来获取你想要的内容。虽然说是抓包得到的,但是你怎么知道得到的就是我们想要的呢?看看我的操作。首先,我们运行数据包工具并选择 IEXPLORE。 EXE进程最好只打开一个网站,也就是只打开你要写规则的网站,保证进程中只有一个IEXPLORE。

  EXE 进程。在这里我们可以看到提交的地址是/book/search。 aspx 我们结合得到的地址 SearchKey=%C1%AB%BB%A8&SearchClass=1&SeaButton。 x=26&SeaButton。 y=10 但是对我们有用的是 SearchKey=%C1%AB%BB%A8&SearchClass=1 这里得到的NovelSearchData(搜索提交)这一段,就是用来把这一段改成我们想要的代码。一段%C1%AB%BB%A8换成{SearchKey},表示搜索提交内容的完整代码为SearchKey={SearchKey}&SearchClass=1 然后我们测试一下是否正确。经过测试,我们得到的内容是正确的NovelListUrl(站点最新列表地址)这个我就不说了,因为每个站点不一样。需要自己找FEIKU NovelList_GetNovelKey(从最新列表中获取小说编号。在此规则中,可以同时获取书名。书名是手动获取的。如果要使用手动模式,一定要拿到书名,否则手动模式无法使用)我们打开这个地址查看源文件。当我们写这个规则时,我们找到了我们想要获取内容的地方。比如我们打开地址看到我想获取内容的第一本小说的名字是李迪承德。我们在源文件中找到了我们用来编写规则的代码。实际上,它不是很多。我写规则的原则是先存后存,也就是代码越短越好。除非万不得已,href="越短越好。

  8c8e。 com/Book/149539/索引。 html"target="_blank"> 让我们把这一段改成 href="。 8c8e。 com/Book/(\d*)/索引。 html"target="_blank">(.+?) 表示小说名经过测试无误。NovelUrl(小说信息页地址)很容易找到,只要点击小说,比如我们可以看到这本小说我们改一下,随意改一下中间的数字,比如我们得到的错误标记就是没有找到那个编号的书信息!10.NovelName(查看源代码到获取小说名称,我们可以从固定模式开始,比如我们刚刚打开它,在这本小说中,我们看到他的固定小说名称格式是“Landing into a magic”,然后我们找到“Landing into a magic”源代码中的magic”。我们得到的内容是

  “站点成恶魔”

  让我们改变这一段

  "(.+?)"

  以下NovelAuthor(获取小说作者) LagerSort(获取小说类别) SmallSort(获取小说类别) NovelIntro(获取小说简介) NovelKeyword(获取小说主角(关键词)) NovelDegree(获取小说封面) (获取小说) (封面) 我就不演示了,这些和上面获取小说名称的方法是一样的,所以叫做One-pass Belden。有时候有些内容你不想要使用,因为格式不固定。有些内容只能先获取,然后用filter函数过滤掉filter的用途。后面,11.NovelInfo_GetNovelPubKey(获取小说公共目录地址page) 这个地址的获取方法和上面一样,这里就不解释 12 PubIndexUrl (公共目录页面的地址)) 来解释一下这个的用法。这个一般在知道采集目标站的动态地址时使用。如果不知道对方的动态地址,知道动态路径{NovelKey}/Index .aspx13.PubVolumeSplit(拆分子卷)这个拆分子卷有什么可写的,就在这写{NovelPubKey}。需要注意的是,如果拆分子卷的规律性不是那么可能对后面的章节名称产生很大的影响。这里我们得到了分割部分的代码。根据我的经验,找到第一个子卷和下面的子卷,看看它们有什么共同点。当我们分析本目录章节中的源代码时,我们可以看到它们有一个共同点。让我们解释一下这一段。

  追求力量

  \s* \s* 表示匹配任何白色字符,包括空格、制表符、分页符等,也就是说,无论它们之间有多少个空格,都可以用来表示14 PubVolumeName(获取卷名) 要获取准确的子卷名,上面拆分部分的规律必须是正确的。一般拆分部分的子卷名称在块的顶部。我们说明分割部分使用

  追求力量

  如果你注意这一段,你会发现它收录了我们这一步要获取的子卷名。修改代码

  (.+?)

  \s* 在我们的测试下,我们可以正常获取子卷,但是如果有这些,我们通常会在过滤规则中将其过滤掉。 PubChapterName(获取章节名) 我们用一段话来说明强大的驯服方法。对于这种时间、日期和更新字数,我们直接忽略,因为这些不是我们想要的。有人问我为什么在这里没用。 () 把它附在这里让我告诉你我们得到的内容就是()中的内容。如果它不是你想要的,但在编写规则时必须使用它,我们可以稍微改变表达式。我们把上面的段落改一下,改成表达式(.+?)就可以正常获取内容了。大家是不是看着这个规则有点别扭?这是因为中间有一个换行符。我没有更改代码。让我们使用\s*。这意味着一个换行符。我们修改后的代码是 (.+?) 现在好点了吗?经过测试,获取内容描述也是正常的。没问题。 16. PubChapter_GetChapterKey(获取章节地址(Chapter Number)) 这里说明一下,下面的PubContentUrl(章节内容页面地址)中使用了这个中的章节号。一般用于知道目标站的动态地址。当目标站未知时,一般不使用静态地址。所以这里我们需要获取章节地址解析(.

  +?) 既然这里是获取章节地址,那为什么还要使用章节名称呢?这主要是为了避免获取的章节名称和获取的章节地址不匹配。这是下一章编号的说明。不麻烦,稍微改一下(.+?)改成这个,我们测试一下看看,改一下就可以得到数了。这个数字只有在知道目标站的动态地址的情况下才能获得。最多使用17.PubContentUrl(章节内容页面地址)在上面得到的章节地址中有说明。这是要知道如何使用目标站。 149539 这是新号码。这里我们用{NovelKey}代替3790336 这是在PubChapter_GetChapterKey中获得的章节编号,我们用{ChapterKey}代替组合为{NovelKey}/{ChapterKey}。 ASPX 是我们的动态章节地址。记住,前提是要知道对方的动态地址。如果你不知道对方的动态地址,那么我们这里写的PubContentUrl(章节内容页面地址)就是{ChapterKey} 18. PubContentText(获取章节内容) 这种获取方式和获取章节名称是一样的。这个就不解释了。现在我们解释过滤的用法。这很简单。几个地方是介绍章节名和卷名以及获取的小说章节内容,但是章节内容是替换功能。介绍章节名和卷名暂无替换规则。比如我们获取的卷名是text(),但是我们呢,在获取子卷的时候,只想获取到text的两个词,所以我们这里使用了过滤器。过滤器的格式为过滤后的内容|过滤内容中间使用过滤内容|将介绍章节名、过滤子卷名分开,例如据说我们在获得作者姓名时,书的内容中多了一条内容。作者因他的href="/Author/WB/149539而聚散随风。

  html">有的有的没有,所以我们不直接使用 book author\s*(.+?) 来先获取内容。从规则上,我们得到的内容是 href="/作者/WB /149539。 html">随风集散,本段我们要保留的内容:随风集散,我们这样做,因为它是固定的,所以只需添加href="/Author/WB/149539。 html">这是一个改动,我们改一下,改成常规格式 href="/Author/WB/\d*. html">就是这样。让我们添加过滤器 href="/Author/WB/\d*\。 html">|内容是这样的,现在说一下章节内容的替换,章节内容替换规则每行替换一个,格式如下,需要替换的内容用结果替换

  这意味着过滤

  这意味着替换。例如,本站有一张“飞酷”字样的图片。我们应该做什么?这里我们使用替换。

  替换内容只对章节内容有用。这是专用于章节内容。有人问我为什么采集某个站总是空章。可能出现空章的原因可能是目标站刚重启网站你的采集IP被屏蔽了等等……这里我想说明一下,空章是图片章节造成的。 采集器的采集内容的操作流程先检查你采集的章节是不是图片章节?如果你的PubContentImages(从章节内容中提取图片)的规律不正确,如果你没有获取到图片章节内容,你会检查你的采集文字内容PubContentText(获取章节内容)。如果PubContentImages(从章节内容中提取图片)PubContentText(获取章节内容)没有匹配的内容,那么就会出现我们上面说的空章节的原因。既然规则都写好了,我们来测试一下是否可以正常获取规则。获取内容测试表明,我们编写的规则可以正常获取到想要的内容

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线