列表设置主要用于采集以文章网址为主的文章条目信息,为下一步通过文章网址采集文章内容做准备。

为避免用户使用错误的文章条目进行采集,对列表设置中的重要项目进行修改会导致自动删除文章列表-未发布文章的全部记录。

ET3支持多层列表,除了不需要设置列表网址外,它的使用方法和主列表相同,多层列表的列表网址来自上一层列表的采集结果,比如第一层的多层列表的网址来自主列表的网址合成结果。

 

一、列表网址

1、说明

[列表网址]为必填项,用于填写待采集的文章列表网页的网址或本地路径。

本项有多个网址时,将滚动处理,多个网址请用换行分隔;

每次执行采集目录操作时只处理一个列表网址,当该列表网址为自动列表网址规则时,也只递增或递减一次;

可填写地址格式有四类:

1、网址

文章列表网页的网址,如某论坛某版网址"http://www.xxxx.net/forum-64-1.html",见图示1:


(图示1)

 

 

2、自动列表网址

能自动递增或递减的网址,详见本文第二部分自动列表网址说明;

 

 

3、本地文件

采集本地的文件,格式为windows本地路径,如"F:/game/wow/Patch.txt"或 "F:\game\wow\Patch.txt"表示F盘GAME文件夹下WOW子文件夹中的patch.txt文件;

 

4、本地目录

采集本地的目录并自动生成列表,格式为windows本地路径,可使用文件名通配符,如"E:\work-site\wordpress3.6"或 "E:\work-site\*.html",如图示2;


(图示2)

 

生成的列表中,Dir表示该项为目录,File表示该项为文件,格式见图示3:


(图示3)

 

注:2.3.7版以前,本地文件地址格式为:“file://localhost/盘符:/目录/文件名”,如“file://localhost/F:/game/Patch.txt”;2.3.7版以前,地址中若含有中文字符,则需在采集配置-基本设置中取消选择“目标网址需要HTTP编码”。

 

5、POST请求

在采集配置-基本设置中勾选【启用POST请求优先模式】时,将以POST请求模式访问列表网址,并提交列表网址中的参数。

格式为:“网址”加“?”加“参数1=值1&参数2=值2&参数3=值3”,示例如:http://www.zzcity.net/search.asp?action=search&key采集

上列网址中,问号之后的参数将通过POST模式提交。

在3.6.8版之后,POST请求模式下列表网址支持自动识别JSON类型参数。

格式为:“网址”加“?”加“JSON字符串”,其中JSON字符串前后必须有花括号。
  示例如下:http://www.zzcity.net/search.asp?{"title":"采集","key":"ET","page":2}

 

二、自动列表网址

1、说明

多数文章列表网页的网址都是按数字规律递增或递减变化的,[自动列表]就是根据这种特性,对列表网址进行自动生成的规则,见图示2-1:

 

 


(图示2-1)

 

自动列表网址规则必须是以协议标记开头的完整网址,例如以“http://”、“https://”开头,设置界面见图示2-2:


(图示2-2)

 

建立自动列表网址规则,以[步进]标记或[子循环]标记替换网址中规律递增或递减的数字字符串,网址将自动按标记递增或递减生成;

 

起始编号如果比结束编号大,那么网址是一个递减的规律变化过程,如果起始编号比结束编号小,那么网址是一个递增的规律变化过程;

 

2、步进标记

点击[步进]按钮将标记插入到规则中或将选择字符串替换为标记。

标记代码为<%s=循环标志,起始编号,结束编号,步长,当前编号%>,为选用项,表示网址中规律变化的数字字符串;

[步进]标记在自动列表网址规则中可选用,并可使用多次,[步进]标记设置见图示2-3:


(图示2-3)

 

1、循环

勾选表示自动列表将始终循环生成;不勾选表示自动列表生成到结束编号即止,以后就一直生成结束编号;

标志:loop 表示循环,noloop 表示不循环;

网址规则中第一个步进标记的循环标志决定该自动列表网址是否循环生成

 

2、起始编号

自动递增或递减的起始值,只能填写数字,需补零位数应与原字符串一致,例如"05"或"005";

当起始编号比结束编号大则步进方向为递减,否则为递增;

 

3、结束编号

自动递增或递减的结束值,只能填写数字,需补零位数应与原字符串一致,例如"01"或"001";

当起始编号比结束编号大则步进方向为递减,否则为递增;

 

4、步长

自动递增的增量,或递减的减量,无论增减,步长为正整数;

 

5、当前编号

表示当前生成的编号位置,当前编号不能超过起始编号和结束编号的范围;

 

3、子循环标记

点击[子循环]按钮将标记插入到规则中或将选择字符串替换为标记。

标记代码为<%l=loop,起始编号,结束编号,步长,当前编号%>,为选用项,表示网址中规律变化的数字字符串;[步进]标记每步进一次,[子循环]标记则进行一次循环,即嵌套循环;

当自动列表规则中仅有[子循环]标记时,作用等同于[步进]标记;

[子循环]标记在自动列表网址规则中仅能使用一次,[子循环]标记设置见图示2-4:


(图示2-4)

 

1、循环

始终为loop;

 

2、起始编号

自动递增或递减的起始值,只能填写数字,需补零位数应与原字符串一致,例如"05"或"005";

当起始编号比结束编号大则步进方向为递减,否则为递增;

 

3、结束编号

自动递增或递减的结束值,只能填写数字,需补零位数应与原字符串一致,例如"01"或"001";

当起始编号比结束编号大则步进方向为递减,否则为递增;

 

4、步长

自动递增的增量,或递减的减量,无论增减,步长为正整数;

 

5、当前编号

表示当前生成的编号位置,当前编号不能超过起始编号和结束编号的范围;

 

4、范例

某网站列表网址按日期生成,地址如:http://www.xxxx.net/2012/4/03.html ,其自动列表规则如图示2-5:


(图示2-5)

 

 

三、列表区域规则

1、说明

[列表区域规则]用于指定包含文章条目列表的代码段,起到缩小分析范围、准确定位的作用,见图示3:


(图示3)

 

[列表区域规则]可以选填,当此项不填写时,将以整个采集到的列表页源码为列表分析对象,填写本项后,将以本项中区域标记<%content%>所表示的源码作为列表分析对象;

点击 图标,可以对[列表区域规则]进行测试;

 

2、标记区

[列表区域规则]有两个可用标记,见图示4:


(图示4)

 

1、区域标记

标记代码为<%content%>,为必用项,表示用于进行列表分析的列表页源码,[区域标记]标记在列表区域规则中仅可使用一次,并不可和其他标记连接;

 

2、变量标记

标记代码为<%var%>,用于表示源码文本中不需要采集的、连续的、零到任意数量的不确定字符串,[变量标记]标记在规则中可以多次使用,不可和其他标记连接;

[变量标记]使用次数越多,会导致采集工作效率越低;

[变量标记]不可和[区域标记]连接在一起使用,即规则中不能出现‘<%content%><%var%>’、‘<%var%><%content%>’和‘<%var%><%var%>’等情况;

 

关于标记更多说明见相关主题 ET常用标记说明

 

3、参考范例

以采集ET官方论坛‘ET2.0安装使用’版(网址http://bbs.zzcity.net/forumdisplay.php?fid=31)为例:

1、首先确认需要采集的帖子条目范围,此范围内应尽可能少的包含与帖子条目相似的链接,我们选择上下两个分页导航作为范围边界,然后查看其源代码如下:

 

<div class="pages_btns">
<div class="pages"><em>&nbsp;271&nbsp;</em><strong>1</strong><a href="forumdisplay.php?fid=31&amp;page=2">2</a><a href="forumdisplay.php?fid=31&amp;page=3">3</a><a href="forumdisplay.php?fid=31&amp;page=4">4</a><a href="forumdisplay.php?fid=31&amp;page=5">5</a><a href="forumdisplay.php?fid=31&amp;page=6">6</a><a href="forumdisplay.php?fid=31&amp;page=7">7</a><a href="forumdisplay.php?fid=31&amp;page=2" class="next">&rsaquo;&rsaquo;</a></div>

……

 

2、代码<div class="pages_btns">在帖子列表上方和下方都只出现了一次,将其作为边界,可以确定帖子条目的代码范围,[列表区域规则]填写如下:

 

<div class="pages_btns"><%content%><div class="pages_btns">

 

3、然后点击[列表区域规则]单步测试工具 进行测试。

 

 

四、列表分析规则

1、说明

[列表分析规则]为必填项,本项用以从[列表区域规则]确定的网页代码范围中分析出文章条目的网址、标题、缩略图等信息,见图示5:


(图示5)

点击 图标,可以对[列表分析规则]进行测试;

 

2、标记区

[列表分析规则]有7个可用标记,见图示5;

 

1、文章地址

标记代码为<%fileid%>,为必用项,用于表示文章条目的网址中的特征字符串,将被用于[文章网址合成]处确定该篇文章的网址,[文章地址]标记在规则中仅可使用一次,并不可和其他标记连接;

 

2、文章标题

标记代码为<%title%>,用于表示文章条目的标题,[文章标题]标记在规则中仅可使用一次,并不可和其他标记连接;

如果在列表分析规则中未使用本标记,则默认以文章地址显示为文章标题。

此标记对应数据项[标题],可在数据项[标题]处做更多设置。

如果在数据项页设置了 [标题] 数据项的采集规则,则发布文章时将使用 [标题] 数据项的采集规则所获取的文章标题进行发布;

 

3、缩略图

标记代码为<%litpic%>,用于表示文章条目对应的缩略图片网址,[缩略图]标记在规则中仅可使用一次,并不可和其他标记连接;

此标记对应数据项[缩略图],可在数据项[缩略图]处做更多设置。

如果在数据项页设置了 [缩略图] 数据项的采集规则,则发布文章时将使用 [缩略图] 数据项的采集规则所获取的文章标题进行发布;

[缩略图]标记的使用可参见采集规则范例-分页应用中‘逻辑方式 - 非主流 - 美女’规则;

 

4、变量标记

标记代码为<%var%>,用于表示源码中不需要采集的、连续的、零到任意数量的不确定字符串,[变量标记]标记在规则中可以多次使用,不可和其他标记连接;

[变量标记]使用次数越多,会导致采集工作效率越低;

 

5、附加信息标记

[附加信息]标记共有3个,可选用,标记代码分别为<%itemdata1%><%itemdata1%><%itemdata1%>,用于采集列表中的更多信息,在规则中仅可各自使用一次,不可和其他标记连接;

[附加信息]标记的值可在数据整理中调用。

 

关于标记更多说明见相关主题 ET内部运算标记注解

 

3、参考范例

以采集ET官方论坛‘ET2.0安装使用’版(网址http://bbs.zzcity.net/forumdisplay.php?fid=31)为例:

1、由[列表区域规则]的参考范例确定的源码片段如下:

 

 

2、上面的源码中,我们可以取得网址、和标题两项,因此本例中不需要用到[缩略图]标记,我们首先选择出包含采集要素的代码如下:

 

<a href="viewthread.php?tid=364083&amp;extra=page%3D1" style="font-weight: bold;color: red">关于“本测试版试用期已过,请使用正式版et”的解决办法</a>



<a href="viewthread.php?tid=364081&amp;extra=page%3D1">et1.4 不存在测试版过期.2.0一直就是beta版本.</a>

 

3、仔细查看上面源码,可以注意到,上例中的2个文章条目的代码略有区别,区别在于第一个文章条目的A标记中多个一个style样式,所以在我们的规则中要对这一点兼容,注意下面规则中对[变量标记]的使用,规则如下:

 

<a href="viewthread.php?tid=<%fileid%>&amp;extra=page%3D1"<%var%>><%title%></a>

 

4、这个规则能获取文章条目,但是经过规则测试工具测试,我们发现它还获取了一些我们不需要的数据,如它同样匹配下面的代码:

 

<a href="viewthread.php?tid=364083&amp;extra=page%3D1" title="新窗口打开" target="_blank"><img src="./images/Beijing2008/folder_common.gif" /></a>

 

5、我们继续调整规则,为确定它仅匹配文章条目的特性,我们需要为这个规则代码找到一些特性源码,通过观察,我们发现在前面规则匹配的所有代码中,只有在文章条目的代码处,才有SPAN标记,于是调整后规则如下:

 

<span id="thread_<%var%>"><a href="viewthread.php?tid=<%fileid%>&amp;extra=page%3D1"<%var%>><%title%></a></span>

 

6、然后进行测试,我们看到分析结果已经完全正确,[列表分析规则]设立成功。

 

 

五、网址合成

1、说明

[网址合成]使用[列表分析规则]中获取的[页面地址]合成完整页面网址,见图示6:


(图示6)

 

如果不设置多层列表,则此处合成的页面网址作为将要采集的文章页面网址,否则,此处合成的页面网址将作为多层列表的第一层列表页的网址。

[网址合成]可以选填,留空时则直接使用[列表分析规则]中获取的[页面地址]为页面完整网址。

点击 图标,可以对[网址合成]进行测试;

 

ET支持采集存在在电脑中的本地文件作为文章,地址格式为windows本地路径,格式为:“盘符:/目录/文件名”,如 “F:/game/Patch.txt”或“F:\game\Patch.txt”表示F盘GAME文件夹中的patch.txt文件。

注:合成的网址中的转义斜杠 \/ 会被自动替换为正斜杠 / ,单独的反斜杠 \ 会被自动替换为正斜杠 / 。

文章地址为本地文件路径时必须为完整地址,不能使用相对地址,正文分页中也不能使用相对地址;

 

1、POST请求模式

在采集配置-基本设置中勾选【启用POST请求优先模式】时,将优先以POST请求模式访问此合成网址,并提交网址中的参数。

格式为:“网址”加“?”加“参数1=值1&参数2=值2&参数3=值3”,示例如:http://www.zzcity.net/search.asp?action=search&key采集

上列网址中,问号之后的参数将通过POST模式提交。

在3.6.8版之后,POST请求模式下此处网址支持自动识别JSON类型参数。

格式为:“网址”加“?”加“JSON字符串”,其中JSON字符串前后必须有花括号。
  示例如下:http://www.zzcity.net/search.asp?{"title":"采集","key":"ET","page":2}

 

2、标记区

[文章网址合成]中可使用4个标记,见图示6;

 

1、文章地址

标记代码为<%fileid%>,为必用项,用于表示文章网址中的特征字符串,对应[列表分析规则]中的[文章地址]标记,用于引用其值;

 

2、附加信息标记

[附加信息]标记共有3个,可选用,标记代码分别为<%itemdata1%><%itemdata1%><%itemdata1%>,对应[列表分析规则]中的3个[附加信息]标记,用于引用其值;

 

3、参考范例

以采集ET官方论坛‘ET2.0安装使用’版(网址http://bbs.zzcity.net/forumdisplay.php?fid=31)为例:

1、通过[列表分析规则]的范例,我们取得了[文章地址]标记,因此合成网址应如下:

 

http://bbs.zzcity.net/viewthread.php?tid=<%fileid%>

 

六、referer模式

1、说明

在此处选择访问[网址合成]生成的网址时的referer参数的取值,见图示7:


(图示7)

 

选择[使用列表网址],则设置HTTP请求的referer参数的值为生成本网址的列表页面网址。

选择[使用本页网址],则设置HTTP请求的referer参数的值为此网址自身。

 

七、多层列表

1、说明

 


(图示8)

 

多层列表配置方式和主列表一致。

点击左下角的+号,可以新增一层列表页。

在多层列表中,第一层列表页面以主列表[网址合成]合成的网址作为该列表页面的网址,之后每一层列表页面都以上一层列表的[网址合成]合成的网址作为本层列表页面的列表网址。

 

1、POST请求模式

在采集配置-基本设置中勾选【启用POST请求优先模式】时,将优先以POST请求模式访问此合成网址,并提交网址中的参数。

格式为:“网址”加“?”加“参数1=值1&参数2=值2&参数3=值3”,示例如:“http://www.zzcity.net/search.asp?action=search&key采集”

上列网址中,问号之后的参数将通过POST模式提交。

在3.6.8版之后,POST请求模式下此处网址支持自动识别JSON类型参数。

格式为:“网址”加“?”加“JSON字符串”。
  示例如下:“http://www.zzcity.net/search.asp?{"title":"采集","key":"ET","page":2}”

 

 

相关主题

1、ET内部运算标记注解