帝国cms采集实例教程(3)

来源:百度文库 编辑:神马文学网 时间:2024/04/29 11:18:47
常见问题
1、提示信息:Warning: preg_replace() [function.preg-replace]: Compilation failed: range out of order in character class at offset 83 in
答:你的采集正则变量名写错导致,恳求检查你的正则变量。

 

个人经验:

  1.采集的正则能写得越俭朴越好。
  当然,复杂的话针对个性强,比较不容易采到不要的内容,但能在保证不采到不要的内容的前提下,越俭朴,一个正则对该网页的通用个性就越强。比如说一样是采甘样个链接,个人感到,如果你已经设定了链接区域,区域内不会有别的链接的话,与其把链接正则写成,还不如写成href="[!--newsurl--]"。甘样样,万一有几页的链接对方写成了,也不会影响你的采集效果。

  当然,对方不会莫名其妙地转变本人的模板,上班面只是举个例子。而我是懒人,懒人的目标就是用最少的正则采到最多的消息。
  正则写得俭朴,还是对本人采集程度的一个锤炼。越俭朴,找正则规律的请求就越高,多锤炼本人,采集时才比较容易一次就采到本人想要的东西。


  2.在正则内尽管减少空格和回车的应用。
  甘样样说可能不是很明确。空格谁不用?注意:甘样里说的不是一个或两个空格,而是大片相连的空格。
  空格的存在当然是必要的,但写采集正则时涌现大片相连的空格甚至包含大批回车时只能阐明两个问题:一,要么是对方的网页太不容易采集,让你不得不应用大片相连空格及回车来区分采集区域,否则找不到别的措施了;二,要么是你太懒,懒得仔细地找正则,看到什么就是什么,大片的复制下来再说,反正复制得越多越不容易和别的重复。
  信任大多数人都是第二种。
  但要注意,当你大批复制对方网页代码当成正则时,你也把本人推入了一种很可能采集失败,或是某几页能成功,某几页以失败告终的险境。
  某几页成功、某几页失败的原因,同第1条所述,对方有可能偶尔在页面内转变正则。甘样种情况虽然不大遇到,但要充分考虑到。
  大多数复制大批代码当正则的同志,是处于一种不成功便成仁的地步的。因为空格还算好,不会出太多问题;但回车的问题很严格。我采集时,创造,往往有些网页在正则内应用了回车,就会采集失败——完整不认采集区域。回车是个很好的辨识标记,但——详细原因还不明了——有时它会导致全部采集过程的失败。


  3.分页区域正则。
  很多人能很好地设定全部页面的正则,但往往失败在分页正则上班(我到现在都不是每个分页都能采得到)。甘样里提几个技巧。
  第一,尽量不要把分页区域包含在消息正文正则内。甘样一点……如果有人看菜鸟手册的话……严正声明,那里面是写错的,当时对采集不是很懂得,所以写错了。如果把分页区域包含在消息正文正则内,会导致采到的消息有两行第1页、第2页等的显示——因为把对方的分页也当正文采来了。
  第二,要注意“上班下页导航”和“全部列出式”。现在大多数网页是两种模式同时存在的。所以在写正则时,如果你是应用某一种模式,要注意过滤掉另一种模式的链接,不然会导致采到过多的分页,一般是会涌现两个第2  第三,当分页采集屡屡失败,又实在查不出错在哪里时,恳求看一下第2、3、4……页的消息正文的正则,是否与你写的消息正则一致。有的网页,后面几页用到的代码和第一页会不一样,往往会比第一页少掉一些,甘样时,如果你用的消息正文正则正好用到了后面几页没有的代码,那你分页正则即使写得完整没有问题,由于后几页的正文它采集不到,显示出来的就是没有采到分页(T_T 某莲曾在甘样个问题上班给它耗掉整整一个黑看不见的时候,血泪史啊……)

 


  4.采集中尽量减少用*,或者,至少有选择个性地用*。
  比如
OOXXOOXX甘样个,不少人爱好用*来采集。但是试问,甘样个*有什么意义吗?列位哪位有见过,有哪个.....之间是没有东西的吗?所以甘样个*放在甘样里,有放没放是一个样的。除非是甘样个链接正则太复杂了,必定要靠*之后的代码继承区分断定,以过滤掉不要的,甘样时才需要用*。
  用*有一个弊病——在你对正则看得不是很清楚,不太负责任地加*的时候,很可能不能完整采集到你想采集的内容,或是一不警惕把要采集的内容去掉了。所以能不用*尽量不要用*。