数字化技能提升教程,数字化时代生存宝典

数字化百科 / 词条 / CMSware常用采集语法

CMSware常用采集语法

查看全部词条命名空间:Main

导航:返回上一页


注意:这里的“常用”是指可以用于多数页面,但绝对不是“万用”

索引页有效区域定位

这个最简单,建议为空,不是必要的填写反而影响效率,也可以用下面的:
/(.*)<\/html>/isU

有效内容页URL过虑

/href=[\"\'@]([^<>\"\']+)[\"\'@][\s>]/isU
基本可以通杀了- -不过既然覆盖面广了肯定就不会太准了,也就是说所有的链接都会抓来

再给两个范围比较小的:


/href=[\"\'@]([^<>\s\"\']+.[shtml]+)[\"\'@][\s>]+/isU


/href=[\"\'@]([^<>\s\"\']+.[asphpjx]+/?[a-z]+=[0-9]+)[\"\'@][\s>]+/isU

或者就直接把两个放一起:

/href=[\"\'@]([^<>\s\"\']+.[shtml]+)[\"\'@][\s>]+|href=[\"\'@]([^<>\s\"\']+.[asphpjx]+/?[a-z]+=[0-9]+)[\"\'@][\s>]+/isU

如果要再精确点的话:

/href=[\"\'@]([^<>\s\"\']+[0-9]+.[shtml]+)[\"\'@][\s>]+|href=[\"\'@]([^<>\s\"\']+.[asphpjx]+/?[a-z]+=[0-9]+)[\"\'@][\s>]+/isU

关键是在于链接的名称,就是红色部分

  • 如果是全数字就可以[0-9]+

  • 如果混有英文就[0-9a-z]+

  • 如果有符号比如-就[0-9\-]+

新闻标题

([^<>\s]+)[^\s\-]+<\/title>/isU
</pre>
如果是
<pre>
/<h1>(.*)<\/h1>/isU
</pre>
如果页面有h1,最好就是用这个了
<h2>多页采集</h2>
比如需要<a href="/wiki/%E9%87%87%E9%9B%86">采集</a>
<pre>
http://edu.qq.com/kaoyan/fuxizhidao01.htm
...
http://edu.qq.com/kaoyan/fuxizhidao08.htm
</pre>
使用如下的索引页规则
<pre>
http://edu.qq.com/kaoyan/fuxizhidao{0[1,8,0]}.htm
</pre>
规则说明: {A[B,C,D]}
<p>“{...}”是索引页分页语法定义</p>
<ul>
<li>A:附加字符</li>
<li>B:开始页数</li>
<li>C:结束页数</li>
<li>D:采集的第一页是否从默认初始页(去掉“{...}”的<a href="/wiki/URL">URL</a>)开始,是的话填“1”,否则填“0”</li>
</ul>
<ul>
<li><strong>举例1-采集索引页URL规则1</strong></li>
</ul>
<pre>
http://edu.qq.com/kaoyan/fuxizhidao{0[1,8,1]}.htm
<p>可以采集如下页面:<br />
http://edu.qq.com/kaoyan/fuxizhidao.htm<br />
http://edu.qq.com/kaoyan/fuxizhidao01.htm<br />
http://edu.qq.com/kaoyan/fuxizhidao02.htm<br />
...<br />
http://edu.qq.com/kaoyan/fuxizhidao08.htm<br />
</pre></p>
<ul>
<li><strong>举例2-采集索引页URL规则2</strong></li>
</ul>
<pre>
http://edu.qq.com/kaoyan/fuxizhidao{0[1,8,0]}.htm
<p>可以采集如下页面:<br />
http://edu.qq.com/kaoyan/fuxizhidao01.htm<br />
http://edu.qq.com/kaoyan/fuxizhidao02.htm<br />
...<br />
http://edu.qq.com/kaoyan/fuxizhidao08.htm<br />
</pre><br />
规则1比规则2多采集了一个 <nowiki>http://edu.qq.com/kaoyan/fuxizhidao.htm</nowiki> 这个就是参数D的作用</p>
<ul>
<li><strong>举例3-采集索引页URL规则3</strong></li>
</ul>
<pre>
http://www.blueidea.com/tech/web/index{_[2,8,1]}.asp
<p>可以采集如下页面:<br />
http://www.blueidea.com/tech/web/index.asp<br />
http://www.blueidea.com/tech/web/index_2.asp<br />
http://www.blueidea.com/tech/web/index_3.asp<br />
...<br />
http://www.blueidea.com/tech/web/index_8.asp<br />
</pre></p>
<ul>
<li><strong>举例4-采集索引页URL规则4</strong></li>
</ul>
<pre>
http://www.blueidea.com/tech/web/index{_[2,8,0]}.asp
<p>可以采集如下页面:<br />
http://www.blueidea.com/tech/web/index_2.asp<br />
http://www.blueidea.com/tech/web/index_3.asp<br />
...<br />
http://www.blueidea.com/tech/web/index_8.asp<br />
</pre></p>
<h2>多页采集索引页URL规则</h2>
<pre>
http://www.xinhuanet.com/newscenter/xhyw{_[1,20]}.htm
</pre>
使用以上的规则就可以采集如下共20个页面
<pre>
http://www.xinhuanet.com/newscenter/xhyw.htm
http://www.xinhuanet.com/newscenter/xhyw_1.htm
http://www.xinhuanet.com/newscenter/xhyw_2.htm
http://www.xinhuanet.com/newscenter/xhyw_3.htm
...
..
.
http://www.xinhuanet.com/newscenter/xhyw_20.htm
</pre>
<h2>过虑函数管道</h2>
<pre>
<Title>{DATA}==>[clearHTML]==>[localizeImg]==>helloworld
通过使用==>[采集函数名称]就可以加入一个过虑管道

内容图片本地化

使用过虑函数实现:localizeImg
{DATA} 
[clearRubbish]==>[localizeImg]==>[page]

定义某个字段为分页采集字段

比如新闻内容,规则如下:
{DATA} 
[clearRubbish]==>[localizeImg]==>[Page]
内容页分页采集也使用过虑函数来实现

内容分页采集函数:[Page]

  • 自适应规则语法

不再需要你熟悉正则语法

语法规则:


[前标识]{DATA}[后标识](==>[过虑函数名1]==>[过虑函数名2]......)


  • [前标识] :必须。任何字符串,必须具有唯一性。

  • {DATA} :必须。就是你要采集的有效内容

  • [后标识] :必须。任何字符串

  • (==>[过虑函数名1]==>[过虑函数名2]......) :可选。过虑函数管道,管道可以无限延伸下去

比如:


{DATA}==>[clearHTML]

{DATA}


  • 智能采集地址修复:

既便采集索引页内容中的有效内容页URL为相对地址也可以自动修复,例如: 采集索引页http://news.xinhuanet.com/newscenter/index.html

  • 支持的URL格式列表:





内容页有分页时设置采集自动检测规则

[下一页]

  • 设置默认值:
{Default:xxx}
  • 时间采集器:

获取当前的时间戳(Timestamp)

{Timer}

  • 来源地址采集器:

获取当前的来源网址

{URL}

#还有要注意的是大小写比如
#还有标记属性值有没有加引号就是“和‘
#还有就是特殊符号在php中的输入方法比如"和/ 就要写成"和/
#还有就是中英文输入符号的区别比如“ 和"是不同的,因为中文输入下符号是双字节的

注意了这些~一般的采集也就不成问题了

参考来源

category:CMSware