不用采集规则就可以采集(第一步:我们先复制一份原来的规则做模板(图))
优采云 发布时间: 2021-12-09 07:13不用采集规则就可以采集(第一步:我们先复制一份原来的规则做模板(图))
第 1 步:让我们将原创规则复制为模板。比如我今天演示的采集站点是一个小说站点,名字叫feiku,那么我将我复制的模板规则命名为dhabc。xml 这个主要是为了方便记忆。第二步:我们在采集器中运行规则管理工具,打开后加载,命名为dhabc。xml XML文件第三步:RULEID(规则编号),任意GetSiteName(站点名称),这里我们写的是8E小说GetSiteCharset(站点代码),这里我们输入查找charset= this=就是我们需要的站点Encoding我们找到的编码是 gb2312 GetSiteUrl(站点地址)。不用说,写在NovelSearchUrl(站点搜索地址)中。这个地址是根据每个网站程序的不同得到的,但是有一个通用的方法就是抓包获取自己想要的内容。虽然是抓包得到的,但是怎么知道得到的是我们想要的呢?看看我的操作。首先,我们运行数据包工具并选择 IEXPLORE。EXE进程最好只打开一个网站,也就是只打开你要写规则的网站。确保过程中只有一个 IEXPLORE。
EXE进程 这里可以看到提交的地址是/book/search。Aspx 让我们结合我们得到的地址。我们有用的是 SearchKey=%C1%AB%BB%A8&SearchClass=1。这里得到的NovelSearchData(搜索提交)这一段,就是把这一段改成我们想要的代码。这一段%C1%AB%BB%A8换成了{SearchKey},表示搜索提交内容的完整代码为SearchKey={SearchKey}&SearchClass=1 然后我们测试一下是否正确。经过测试,我们得到的内容是正确的 NovelListUrl((本站最新列表地址) 这个我就不多说了,因为每个站点不一样,需要找到FEIKU NovelList_GetNovelKey(从最新列表中获取小说编号。在这个规则中,可以同时获取书名,手动获取书名。如果你想使用手动模式,你必须得到书名,否则手动模式将不可用。)我们打开/book/showbooklist。aspx 这个地址是查看源文件的。当我们写这个规则时,我们找到了我们想要获取内容的地方。比如我们打开地址看到想要获取的内容,第一部小说的名字是第一卷,第八卷,黑暗的崛起,11龙,其实我们用来写规则的代码不是一个我们用来编写规则的很多代码。我写规则的原则是保存。也就是说,代码越短越好。除非必要,否则最好更短。我们将把这一段改成代表小说的名字,经测试无误。NovelUrl(小说信息页地址)很容易我们点开一本小说就知道了,
html这本小说我们可以看到我们把它改成了/Book/15055799/Index。我们用html得到的错误标志是没有找到这个号的书信息!10.小说名称( /Book/149539/Index.html 查看源码获取小说名称,我们可以从固定模式开始,比如我们刚刚打开小说李迪程沫,可以看到他的固定模式小说名称格式为“李帝城末”,我们在源码中找到了“Site into a Devil”,我们得到的内容是“Site into a Devil”。在本段中,我们更改以下小说作者(获取小说author) LagerSort(获取小说类别) SmallSort(获取小说类别) NovelIntro(获取小说简介) NovelKeyword(获取小说主角(关键字)) NovelDegree(获取小说封面(获取小说封面)这些,我就不演示了,这些和上面获取小说名称的方法是一样的,所以就是所谓的一通百通有时会因为格式不固定而获取一些你不想使用的内容。有些内容只能先获取,再通过过滤功能过滤。过滤器的用法在后面的11. NovelInfo_GetNovelPubKey(获取小说公共目录页面地址) 12 PubIndexUrl(公共目录页面地址)这里就不解释了。我将解释这个的用法。这个一般在知道目标站的动态地址采集时使用。如果不知道对方的动态地址,如果知道动态路径/Book/{NovelKey}/Index,在此写{NovelPubKey}。
aspx13。PubVolumeSplit(拆分子卷)这个拆分子卷有一些东西要写。需要注意的是,如果拆分子卷的规律性不太可能对后续章节名称产生很大影响,我们将根据我的经验获取拆分部分。就是在我们的分析/html/book/130/149539/List中找到第一个子卷和下面的子卷来检查它们的共同点。shtm 这个目录章节的源码可以看出他们有一个共同点。拿这一段来说明对权力的追求。从这里我们可以看出他的共同点。\s* 表示匹配匹配任何白色字符,包括空格。、制表符、分页符等,也就是说,无论它们之间有多少个空格,都可以用来表示14个PubVolumeName(获取子卷名)。如果要获得准确的子卷名,上述分区的规律必须是正确的。在分割部分的情况下,我们解释了对分割部分使用的权力的追求。如果你注意这部分,你会发现里面收录了我们这一步要获取的子卷名。让我们更改代码。我们将在测试下正常获取子卷。但是如果有这些,我们通常会在过滤规则中过滤掉。15. PubChapterName(获取章节名) 我们用一段话来说明强大的驯服方法。对于这种时间、日期和更新字数,我们直接忽略,因为这些不是我们想要的。有人问我为什么在这里没用。() 附上它。告诉你,我们得到的内容就是()中的内容。如果它不是你想要的,但在编写规则时必须使用它,我们可以稍微改变表达式。我们把上面这段改一下,改成表示正常获取内容。大家是不是觉得这个规则有点别扭?这是因为中间有一个换行符。我没有更改代码。现在好点了吗?经过测试,也是正常的。内容描述规则16没有问题。
PubChapter_GetChapterKey(获取章节地址(Chapter Number)) 这里说明一下,在下面的PubContentUrl(章节内容页面地址)中使用了本节中的章节号。一般用于知道目标站的动态地址。当目标站未知时,一般不使用静态地址。那么我们这里需要得到的是章节地址,那为什么还要使用章节名呢?这主要是为了避免获取的章节名和获取的章节地址不匹配,这里是章节号的写法其实并不麻烦。只是稍微改变一下,就这样改变它。让我们测试一下,看看吧。这个变化是为了得到号码。获取的编号只有在知道目标站的动态地址的情况下才能使用。对 17 有用。PubContentUrl(章节内容页面地址) 上面部分获取章节地址表示这是要知道目标站/html/book/149539/3790336。ASPX讲解149539的使用方法,很新颖。这里我们用{NovelKey}代替3790336 {ChapterKey}来代替组合是/html/book/{NovelKey}/{ChapterKey}。ASPX 这是我们的动态章节地址 PubContentUrl (Chapter Content Page Address) 这里写的内容是{ChapterKey} 18.
PubContentText(获取章节内容) 这种获取方式和获取章节名一样,地方是介绍章节名子卷名和获取的小说章节内容,但是章节内容是一个替换函数。介绍章节名分卷名暂无替换规则。分卷的时候,只想得到文本的两个词,所以我们这里使用过滤器。过滤器的格式是过滤器的内容| 过滤内容中间使用过滤内容| 将章节名称的介绍分开。在获取作者姓名时,获取的内容中存在多余的内容。作者因他而随风聚散,有的,有的不是,所以我们不直接使用图书作者先获取想要的内容。从规则中,我们明白了。内容是随风聚散。在本段中,我们希望保持内容随风飘散。让我们将其添加到过滤规则中。因为是固定的,直接添加就行了。这是我们要改变的。让我们将其更改为常规格式即可。让我们添加过滤器内容。现在假设下一章的内容被替换了。章节内容替换规则为每行替换一次。格式如下。需要替换的内容。更换结果。如果有他使用的图片我们该怎么办?其他替换,类似替换,只对章节内容有用。这是章节内容。有人问我为什么我< @采集某站为什么老是出现空章?可能有空章的原因是什么?这可能是目标站刚刚重启。网站你的采集IP被封了等等...这里我想说明一下,空章是由于采集器的采集内容的操作流程是由图片章节引起的,先检查你采集章节是否为图片章节。如果你的PubContentImages(从章节内容中提取图片)的正则不正确,如果你没有得到图片章节内容,你会检查你的采集文本内容PubContentText(获取章节内容)这个正则匹配如果PubContentImages(从章节内容中提取图片) PubContentText(获取章节内容)没有匹配的内容,那么我们上面说的空章的原因就出现了。既然规则都写好了,我们来测试一下是否可以正常获取规则。获取内容测试表明,我们编写的规则可以正常获取想要的内容。第一步:我们先复制一份原来的规则作为模板。比如我今天演示的采集网站就是飞酷小说网站。我将复制的模板规则命名为 dhabc。
xml 这个主要是为了方便记忆。第二步:我们在采集器中运行规则管理工具,打开后加载,命名为dhabc。xml XML文件第三步:RULEID(规则编号),任意GetSiteName(站点名称),这里我们写的是8E小说GetSiteCharset(站点代码),这里我们输入查找charset= this=就是我们需要的站点Encoding我们找到的编码是 gb2312 GetSiteUrl(站点地址)。不用说,写在NovelSearchUrl(站点搜索地址)中。这个地址是根据每个网站程序的不同得到的,但是有一个通用的方法就是抓包获取自己想要的内容。虽然是抓包得到的,但是怎么知道得到的是我们想要的呢?看看我的操作。首先,我们运行数据包工具并选择 IEXPLORE。EXE进程最好只打开一个网站,也就是只打开你要写规则的网站。确保过程中只有一个 IEXPLORE。EXE进程 这里可以看到提交的地址是/book/search。Aspx 让我们结合我们得到的地址。我们有用的是 SearchKey=%C1%AB%BB%A8&SearchClass=1。这里得到的NovelSearchData(搜索提交)这一段,就是把这一段改成我们想要的代码。本段%C1%AB%BB%A8替换为{SearchKey},表示搜索提交内容的完整代码为SearchKey={SearchKey}& Aspx 让我们结合我们得到的地址。我们有用的是 SearchKey=%C1%AB%BB%A8&SearchClass=1。这里得到的NovelSearchData(搜索提交)这一段,就是把这一段改成我们想要的代码。本段%C1%AB%BB%A8替换为{SearchKey},表示搜索提交内容的完整代码为SearchKey={SearchKey}& Aspx 让我们结合我们得到的地址。我们有用的是 SearchKey=%C1%AB%BB%A8&SearchClass=1。这里得到的NovelSearchData(搜索提交)这一段,就是把这一段改成我们想要的代码。本段%C1%AB%BB%A8替换为{SearchKey},表示搜索提交内容的完整代码为SearchKey={SearchKey}&
aspx 这个地址是查看源文件的。当我们写这个规则时,我们找到了我们想要获取内容的地方。比如我们打开地址看到想要获取的内容,第一部小说的名字是第一卷,第八卷,黑暗的崛起,11龙,其实我们用来写规则的代码不是一个我们用来编写规则的很多代码。我写规则的原则是保存。也就是说,代码越短越好。除非必要,否则最好更短。我们将把这一段改成代表小说的名字,经测试无误。NovelUrl(小说信息页的地址)我们很容易点击小说就知道,比如/Book/150557/Index。html这本小说我们可以看到我们把它改成了/Book/15055799/Index。我们用html得到的错误标志是没有找到这个号的书信息!10.小说名称( /Book/149539/Index.html 查看源码获取小说名称,我们可以从固定模式开始,比如我们刚刚打开小说李迪程沫,可以看到他的固定模式小说名称格式为“李帝城末”,我们在源码中找到了“Site into a Devil”,我们得到的内容是“Site into a Devil”。在本段中,我们更改以下小说作者(获取小说author) LagerSort(获取小说类别) SmallSort(获取小说类别) NovelIntro(获取小说简介) NovelKeyword(获取小说主角(关键字)) NovelDegree(获取小说封面(获取小说封面)这些,我就不演示了,这些和上面获取小说名称的方法是一样的,所以就是所谓的一通百通有时会因为格式不固定而获取一些你不想使用的内容,并且有些内容只能先获取,然后使用过滤器功能过滤掉过滤器的使用。我稍后再谈。
NovelInfo_GetNovelPubKey(获取小说公共目录页面地址) 这个地址的获取方法同上。12 PubIndexUrl(公共目录页面地址)这里就不解释了。我将解释这个的用法。这个一般都知道采集 使用目标站的动态地址时,如果不知道对方的动态地址,知道动态路径的在这个写{NovelPubKey}/Book/{NovelKey}/指数。aspx13。PubVolumeSplit(拆分子卷)这个拆分子卷有一些东西要写。需要注意的是,如果拆分子卷的规律性不太可能对后续章节名称产生很大影响,我们将根据我的经验获取拆分部分。就是在我们的分析/html/book/130/149539/List中找到第一个子卷和下面的子卷来检查它们的共同点。shtm 这个目录章节的源码可以看出他们有一个共同点。拿这一段来说明对权力的追求。从这里我们可以看出他的共同点。\s* 表示匹配匹配任何白色字符,包括空格。、制表符、分页符等,也就是说,无论它们之间有多少个空格,都可以用来表示14个PubVolumeName(获取子卷名)。如果要获得准确的子卷名,上述分区的规律必须是正确的。在分割部分的情况下,我们解释了对分割部分使用的权力的追求。如果你关注这部分,你会发现里面收录了我们这一步要获取的子卷名。让我们更改代码。我们将在测试下正常获取子卷。但是如果有这些,我们通常会在过滤规则中过滤掉。15.
PubChapterName(获取章节名) 我们用一段话来说明强大的驯服方法。对于这种时间、日期和更新字数,我们直接忽略,因为这些不是我们想要的。有人问我为什么在这里没用。() 附上它。告诉你,我们得到的内容就是()中的内容。如果它不是你想要的,但在编写规则时必须使用它,我们可以稍微改变表达式。我们把上面这段改一下,改成表示正常获取内容。大家是不是觉得这个规则有点别扭?这是因为中间有一个换行符。我没有更改代码。现在好点了吗?经过测试,也是正常的。内容描述规则16没有问题。PubChapter_GetChapterKey(获取章节地址(Chapter Number)) 这里说明一下,在下面的PubContentUrl(章节内容页面地址)中使用了本节中的章节号。一般用于知道目标站的动态地址。当目标站未知时,一般不使用静态地址。那么我们这里需要得到的是章节地址,那为什么还要使用章节名呢?这主要是为了避免获取的章节名和获取的章节地址不匹配,这里是章节号的写法其实并不麻烦。只是稍微改变一下,就这样改变它。让我们测试一下,看看吧。这个变化是为了得到号码。获取的编号只有在知道目标站的动态地址的情况下才能使用。对 17 有用。
PubContentUrl(章节内容页面地址) 上面部分获取章节地址表示这是要知道目标站/html/book/149539/3790336。ASPX展示了如何使用149539,这是一本小说。这里我们用{NovelKey}代替3790336 {ChapterKey}来代替/html/book/{NovelKey}/{ChapterKey}的组合。ASPX 这是我们的动态章节地址 PubContentUrl(章节内容页面地址) 这里写的内容是{ChapterKey} 18. PubContentText(获取章节内容) 这个获取方法和获取章节名一样 地方是介绍章节名子- 卷名和获取的小说章节内容,但章节内容是替换功能。介绍章节名分卷名暂无替换规则。当你分割音量时,您只想获取文本的两个单词,因此我们在这里使用过滤器。过滤器的格式是过滤器的内容| 过滤内容中间使用过滤内容| 将章节名称的介绍分开。在获取作者姓名时,获取的内容中存在多余的内容。作者因他而随风聚散,有的,有的不是,所以我们不直接用书作者先得到想要的内容。从规则中,我们明白了。内容是随风聚散。在本段中,我们希望保持内容随风飘散。让我们将其添加到过滤规则中。因为是固定的,直接添加就行了。这是我们要改变的。让我们将其更改为常规格式即可。让我们添加过滤器内容。现在假设下一章的内容被替换了。章节内容替换规则为每行替换一次。格式如下。需要替换的内容。更换结果。如果有他使用的图片我们该怎么办?其他替换,类似替换,替换只对章节内容有用