解密:关关采集器,采集规则编写
优采云 发布时间: 2020-12-28 08:10解密:关关采集器,采集规则编写
步骤1:让我们复制原创规则作为模板。例如,我今天演示的采集网站是一个名为feiku的新颖网站,然后我将复制的模板规则的副本命名为dhabc。 xml主要是为了易于记忆。步骤2:我们在采集器中运行规则管理工具,并在打开它后将其加载,我们现在将其命名为dhabc。 xml XML文件第三步:开始正式写规则RULEID(规则编号)这个任意的GetSiteName(站点名称)这里我们编写GetSiteCharset(站点代码)这里我们打开查找字符集=这个数字就是我们需要的站点代码代码找到的是gb2312 GetSiteUrl(站点地址)。不用说,根据每个网站程序的不同,编写NovelSearchUrl(站点搜索地址)以获得该地址。但是,有一种通用方法。通过捕获数据包获取所需的内容。尽管它是通过捕获数据包获得的,但是您如何知道我们得到的就是我们想要的?看我的*敏*感*词*。首先,我们运行数据包工具并选择IEXPLORE。如果只打开一个网站,即只打开要编写规则以确保该过程中只有一个IEXPLORE的网站,则EXE进程是最好的。在此处输入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(搜索提交)中,此处将本节更改为我们想要的代码。替换本段%带有{SearchKey}的C1%AB%BB%A8,表示搜索提交的内容完整的代码是SearchKey = {SearchKey}&SearchClass = 1然后我们测试它是否正确。经过测试,我们获得的内容是正确的NovelListUrl(最新站点列表地址),我不会在此谈论,因为每个站点都不相同,因此需要查找FEIKU NovelList_GetNovelKey(从最新列表中获取小说编号。在此规则中,您可以同时获取书名。手动获取书名。如果要使用手动模式,则必须获取书名,否则将无法使用手动模式)我们打开此地址可以查看源文件。编写此规则时,我们会找到要获取内容的地方,例如打开地址时。我看到要获取的内容的第一本小说的名字是Lidi Chengde。我们在源文件中找到了用于编写规则的代码。实际上,数量不多。我写规则的原则是保存。也就是说,代码很短。更好,除非绝对必要,较短的则更好href =“。
云莱格。净/图书/ 149539 /索引。 html“ target =” _ blank“>站点为怪物href =”。云来阁。净/图书/(\ d *)/索引。 html“ target =” _ blank“>(。+?)这意味着该小说的名称已经过正确测试。如果仅单击小说,就很容易找到NovelUrl(小说信息页的地址)。例如,我们可以看到这本小说,让我们在中间更改编号并随意更改它。我们得到的错误标记是找不到该编号的书籍信息!10. NovelName(查看源代码以获取该编号小说的名称。我们可以从固定模式开始,例如刚打开的站点。对于莫的这本小说,我们看到他的固定小说名称格式为“土地变成恶魔”,然后我们找到“土地以成为源代码中的“恶魔”。我们得到的内容是
“进入恶魔之地”
我们将更改此段
“(。+?)”
以下NovelAuthor(获取小说作者)LagerSort(获取小说类别)SmallSort(获取小说类别)NovelIntro(获取小说*敏*感*词*)NovelKeyword(获取小说主角(关键字))NovelDegree(获取写作过程) NovelCover(获取小说(小说封面))我将不会演示它们与上述获取小说名称的方法相同,因此称为通行证。有时您不想使用某些内容因为格式不固定,并且只能先使用某些内容。将其获取并使用过滤器功能过滤掉过滤器的用法。我会说11.NovelInfo_GetNovelPubKey(获取新颖的公共目录页面的地址)该地址的获取方法与上述相同,此处不再赘述12 PubIndexUrl(公共目录页)地址)让我解释一下该地址的用法。通常在采集目标站的动态地址已知时使用。如果您不知道对方的动态地址,请在此输入{NovelPubKey}。如果您知道动态路径,请说该工作站。小说的章节目录的动态地址就是PubIndexUrl的规则是{NovelKey} /Index.aspx 13.PubVolumeSplit(拆分子卷),此拆分子卷有放置位置。编写时,需要注意拆分子卷的规则性,否则可能会对以下章节名称产生很大影响。在这里,我们获得了分割部分的代码。根据我的经验,找到第一个子卷和随后的子卷以检查它们的共同点。我们分析该目录。本章中的源代码表明它们有一个共同点。用这一段来说明
追求力量
\ s * \ s *表示与任何白色字符匹配的匹配项,包括空格,制表符,分页符等。也就是说,无论它们之间有多少空格,它们都可以用来表示14 PubVolumeName(获取卷名)要获取准确的子卷名称,上述拆分部分的规则性必须正确。通常,拆分部分的子卷名称在一个块的顶部。我们解释说使用了分割部分
追求力量
如果您关注此段,您会发现它收录我们要在此步骤中获得的子卷名称。让我们更改代码
(。+?)
\ s *在我们的测试下,我们可以正常获取子体积,但是通常会在过滤规则中将其过滤掉。 PubChapterName(获取章节名称)让我们以一段来说明强大的驯服方法。对于这种时间,日期和更新字数,我们直接忽略它,因为这些不是我们想要的。有人问为什么我在这里没用。 ()在此附上,让我告诉您,我们得到的内容就是()中的内容。如果不是您想要的,但是在编写规则时必须使用它,我们可以稍微更改一下表达式。让我们将以上段落更改为表达式(。+?),以正常获取内容。每个人都看这个规则有点尴尬吗?这是因为中间有一个换行符。我没有更改代码。我们使用\ s *表示换行符,我们修改后的代码为(。+?),现在更好吗?经过测试,获取内容也是正常的。没有问题。 16. PubChapter_GetChapterKey(获取章节地址(章节编号))在此说明在下面的PubContentUrl(章节内容页面地址)中使用其中的章节编号。通常用于了解目标站的动态地址。通常,当目标站未知时不使用它。因此,在这里我们需要获取章节地址分析以获取(。
+?))由于这里是获取章节地址的原因,为什么我们仍然使用章节名称?这主要是为了避免获得的章节名称和获得的章节地址不匹配。这是下一章编号的说明。没问题,只需对其稍作更改(。+?),请对其进行更改,让我们对其进行测试并查看它。然后更改它以获取数字。仅在知道目标站的动态地址时才能获得该编号。最多使用17个。PubContentUrl(章节内容页面地址)上面的“获取章节地址”中有一个解释。这是要知道目标。这是如何使用它。 149539这是新颖的数字。在这里,我们使用{NovelKey}代替3790336,这是在PubChapter_GetChapterKey编号中获得的章节,我们使用{ChapterKey}而不是{NovelKey} / {ChapterKey}的组合。 ASPX是我们动态的章节地址!!!记住前提是要知道对方的动态地址。如果您不知道对方的动态地址,那么我们在PubContentUrl(章节内容页面地址)中写的是{ChapterKey}18。PubContentText(获取章节内容)这种获取方法与获取章节名称相同。这没有解释。现在我们解释一下过滤的用法。这很简单。过滤是删除不需要的过滤器。一个地方是介绍章节名称子卷名称和所获得的新颖章节内容,但是该章节内容是替代功能。简介章节名称子卷名称暂时没有替换规则。例如,我们获得的子卷称为text(),但是我们在子卷中时,只想获取文本的两个单词,因此我们在此处使用过滤器。过滤器的格式是过滤后的内容|过滤器中每个过滤器内容的中间使用|分隔介绍章节名称。过滤器子卷的名称是相同的,例如,据说当我们获得作者的姓名时,内容中就有多余的内容。由于他的href =“ / Author / WB / 149539,作者被采集和散布。
html“>有些(有些)没有,所以我们不需要使用本书的作者\ *(。+?)首先获取内容。根据规则,我们获取的内容为href =” /作者/ WB / 149539。 html“>随风而散,我们要保留在本段中。随风而散,我们这样做是因为它是固定的,因此只需添加href =” / Author / WB / 149539。 html“>这是一个更改。让我们对其进行更改并将其更改为常规格式href =” / Author / WB / \ d *。 html“>可以。添加过滤器href =” / Author / WB / \ d * \。 html“> |内容是这样的。现在让我们讨论章节内容的替换。章节内容替换规则每行替换一次,格式如下。要替换的内容替换为结果
这意味着过滤
这意味着更换。例如,此站中有单词“ Feiku”的图片。我们应该做什么?这里我们使用替换。
替换内容仅在章节内容中有用。这专用于章节内容。有人问为什么我采集某个电台的章节总是空的。可能存在空章节的原因可能是目标站刚刚重新启动网站您的采集 IP被阻止,等等...在这里,我想解释一下空章节是由图片章节引起的。 采集器的采集内容的操作步骤将首先检查采集的章节是否为图片章节。如果您的PubContentImages(从章节内容中提取图片)的规律性不正确,请检查您的采集文本内容PubContentText(获取章节内容)是否有常规匹配项如果PubContentImages(从章节内容中提取图片)PubContentText(获取章节内容)不匹配内容,然后出现我们上面提到的空白章节的原因。编写规则后,让我们测试规则是否可以正常获得。内容测试表明,我们编写的规则通常可以获取我们想要的内容