SS采集菜鸟级教程,看了不会的留言我负责教会 - 站长日志 - 烟台婚姻家庭律师网 |烟台律师|家庭婚姻|烟台婚姻咨询|烟台离婚律师|婚姻法律咨询|烟台离婚网|烟台法律顾问|
助人乃快乐之本。 致力于菜鸟事业的开发,让你一看就不用再问。

SS采集菜鸟级教程,看了不会的留言我负责教会

上一篇 / 下一篇  2007-08-28 15:00:37 / 个人分类:SupeSite/X-Space

  所谓授人以渔而非授以鱼,本教程不会给你一个现成的采集器用,但你看完了,学会了SS自带的采集,更会享用终生。
Mi+i;u6q9u^,c$t;d:H0  SS自带的采集器,只能用于采集发布资讯,不能用于论坛和个人空间的日志。特此声明。

(注:本教程为菜鸟级,任何想获得高级教程的止步,任何非SS自带的采集此处不研究,请止步。)

  一、采集原理

  从小学到初中,学习好象基本都讲原理,但是,俺这原理是自写的,比任何以往都管用。

  SS之采集器,从根本上讲,采集过程就是我们看网页的过程,但是,有个最大的区别,我们看网页是多姿多彩的,但采集器看网页,只是专注于“源文件”的。即我们在查看——源文件或右键,查看源文件(V),所看到的记事儿或写字板(文件太大时自动提示选用)打开看到的源码,这源码也正是我们在写采集器时要研究的东东。示例部分源码如下(用俺自己的破网删除而成):

<html>烟台婚姻家庭律师网8t;rsb |I"A(q
<head>
Su9p+Gn,t0<title>中华技击论坛</title>
Yz*A b z!Xw0<meta http-equiv="Content-Type" content="text/html; charset=gb2312">烟台婚姻家庭律师网+\gJw(h
<script language="JavaScript">
XV.kYu*| eW0function MM_reloadPage(init) {  //reloads the window if Nav4 resized烟台婚姻家庭律师网WY,x5yR.s)P\
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {烟台婚姻家庭律师网I6Jg"R"B'ZS
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}烟台婚姻家庭律师网0M4q [+E7xs
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();烟台婚姻家庭律师网;s!g?W{1m7J(T|
}
3af`2M#y!K-h)G0T0MM_reloadPage(true);烟台婚姻家庭律师网N"Hg&d3{f
</script>烟台婚姻家庭律师网q&U'f_0{Ju
</head>

<body bgcolor="#FFFFFF" text="#000000" onLoad="MM_preloadImages('images/logoeng.jpg')">烟台婚姻家庭律师网4g.F2T-xMf.~a/F"V
<table width="750" border="0" cellspacing="0" cellpadding="0" align="center">烟台婚姻家庭律师网}"s N e+ROc
  <tr> 烟台婚姻家庭律师网7v,VI6A;[:C y9dC
    <td width="159" height="114" align="center" valign="middle"><a href="http://www.lawdiy.com/bbs/forum-13-1.html" target="_blank"><img src="images/wu.gif" width="109" height="108" border="0" alt="这里是留言本噢!"></a></td>

…………

        </tr>烟台婚姻家庭律师网(u J3t0Z#I/tNG
        <tr>
1~1xx1L)B$`u+~0          <td width="21" height="26">&nbsp;</td>烟台婚姻家庭律师网9ux},Y8si-f]/W3_
          <td width="127" height="40"><a href="train.htm" target="_blank">训练图片</a></td>烟台婚姻家庭律师网.YNv+}T+w2R"K|$CaQ
        </tr>
(t`y8L'NG0      </table>烟台婚姻家庭律师网0Dm6{#zQ
<br>烟台婚姻家庭律师网bLv"n1v
<p align="center"><font size="2" color="#FF0000">小李飞钉制作,一切权利保留!</font></p>
q%Z:?{!QJ0<p align="center"><font size="2" color="#00CC99">建议在800*600分辨率下浏览本站</font></p>烟台婚姻家庭律师网6@/JA+w.w$q
<p align="center"><font size="2" color="#FF0000"><a href="mailto:xiaoninglaw@163.com">Email:xiaoninglaw@163.com</a></font></p>烟台婚姻家庭律师网(O*w#v;p3T T Ji
</body>
(UQ,S|(OQ-T1Jp0</html>

这里可以看到基本的HTML成对儿出现的语言格式,即<html></html>为起始标志,<head></head>组成的头部,其中有<script language="JavaScript">……</script>标注的java语言,更主要的是<body></body>组成的网页主体(当然你要是没找到这些代码也不用奇怪,这是标准html用的,别的倒不定非得有)。其中<body>这家伙跟许多同类的家伙(象<div>、</table>)一样,可以带一批不听话的参数,如这里<body bgcolor="#FFFFFF" text="#000000" onLoad="MM_preloadImages('images/logoeng.jpg')">,我也看不懂,不要问我,学学英文先。不过,基本上,凡是网页上不让右键不让选择不让复制的东东,都在body后面,另存为后,删除其后的参数,基本搞定的说。

回归正传,采集原理:

SS的采集器,看得正是上面的东西,通过指定区域,分别照单查收,不管是<p>还是什么,一律收归中,这点,在制作采集器过程中,一定要牢记。

好象没说原理啊?原理其实就一句话:SS采集就是打开网页读取源码的过程(好好理解吧,呵)


$p6}3rnjBy$dR0  二、真抓实干,开始研究做采集器

SS 有两种采集器,人工和智能,智能我们就不研究了,凡智能的,都是傻瓜,这是真理。我们研究人工的,开工了:

1、确定你要采的网页
A txO*z s"`0这好象是废话,可是很多人会错在这儿。我们在采的,不是一个站,而是一个“分类”的列表,不要说你要采集http://www.lawdiy.com,也不是http://www.lawdiy.com/html/news.html这个资讯列表,这是废话,没这样采的。你要采的是一个分类,是一个列表,比如我的“结婚专题”http://www.lawdiy.com/html/87/category-catid-187.html,唉这样的页面才是我们要开工的页面。

2、开工填写

(1)基本要素

机器人名:这个没有专项要求,你能看明白就行,一般用采集的网站的名字。

采集总个数:一看明白,总个数么,呵,不过,有一定上限,不信,你打入N个0提交再回来看下。

单次采集个数:HOHO,一般的水平就写1吧,慢不了多少,写多了累爬了你的服务器,可莫怪我。一般写到5也是可以的。

采集页面编码:我的用gbk的,所以一般是空的,你水平一般的话,也空着吧。除非你采来的是乱码。查看人家的源文件:<meta http-equiv="Content-Type" content="text/html; charset=gb2312">,看到了没?charset后面就是对方的编码了。如果人家是big5而你是gbk当然你就只能老老实实地写上big5了。

(2)列表页面采集设置(重要的部分来了)
J/I"G9V P pM7s0  索引页面URL地址方式,下面还有个框框供你写东西:
mx1r B"w c0  这里提供两种,一种是手工输入,输入的是什么呢?是二项1中确定你要采的网页,即输入http://www.lawdiy.com/html/87/category-catid-187.html这个地址,这个地址是你要采的地址,必须是可以直接copy到IE地址栏里能打开的,这点,NN倍的重要。如果有多个地址,比如第一页和第二页,那就在每个地址后打一回车,继续粘上呗。

二种方式是自动增长,这里多了一个分页变量[page],这是对付有规律的列表分页(强调是列表分页,不是每个文章的分页)的。如前所述,http://www.lawdiy.com/html/87/category-catid-187.html是俺一个结婚的资讯列表页,这页后面还有2页和3页(将来会更多,不然俺站岂不是死悄悄了?)。2页是什么呢?点下,在IE地址栏里是:http://www.lawdiy.com/html/87/category-catid-187-page-2.html,3页是http://www.lawdiy.com/html/87/category-catid-187-page-3.html。如果仅此3页,简单了,用手工输入分别输入可也,一行一个。可是,不是所有人都象俺这样善良,只有3页新闻,万一有100页呢?HOHO。研究下规律,我在采第2、3页可以自动增长了:
'_&m#T^zLcv0http://www.lawdiy.com/html/87/category-catid-187-page-[page].html烟台婚姻家庭律师网s-D4U~uQ WBe w6M
索引页面页码:页码开始数 2   页码结束数 3 
"T"dV*UW:V]\/cI \:\0那机器人在采集时就会用页码开始数的值(2)一直加1替换[page]来打开,直到页码结束数(3)。
$gTc)E]#Hy h0所以,只要有规律,N多页也不怕。

注:经验表明,有部分网页列表首页可以和其他列表分页采用自动增长模式,方法是在点2页后再点1页,一般会显示其全部网址,或在第2页基础上改2为1来试,如http://www.lawdiy.com/html/87/category-catid-187-page-2.html是第二页,我改下http://www.lawdiy.com/html/87/category-catid-187-page-1.html来做第一页打开,如果可行,就可以直接用自动增长,如果不行(本网就不行),就只能老老实实采完1页,再用自动方式采第2页以后的内容了。
!Q$P)D&~*D)r[0友情提示:许多ASP网页用&page=2的方式来分页,这更是自动增长大展身手的时间,一般&page=1虽然是个垃圾参数,但是也能打开每1页。哈哈哈,所以,别忘了,试一下。

(3)列表区域识别规则(很关键啊)烟台婚姻家庭律师网ueM4a_P#sH
到这里,开始研究源代码了,请打开要采集的列表网页,查看源代码(不会的请参照前面,依然不会的自觉退场)。


0G^uFoxdq,@j0这儿还得罗嗦几句原理,采集器,就是从你指定的列表区域中(源文件里),按你指定的url文章网址打开方式,一个一个地取出文章的网址后打开文章(象我们在IE里做的一样),然后看其源代码,选取你指定的内容发布。

为什么要指定列表区域呢?我们知道,一个网页中除了这个分类的文章连接之外,还会有一批对我们没有用的连接,指定了区域,就是给机器人缩小了查找文章连接的范围。烟台婚姻家庭律师网f Za;w8Yh.i
还是以俺的http://www.lawdiy.com/html/87/category-catid-187.html为例,打开后查看源文件,一批代码,对我们有用的是:

<h3>资讯列表</h3>
i\p)O`+}n0<ul id="newslist" class="newslist">
0K t)k.^2F0i+d)G)]|X&x.g0<li>烟台婚姻家庭律师网p-NBIB$ng2O(PE
<a href="http://www.lawdiy.com/html/74/n-3674.html" target="_blank">同华侨、港澳同胞结婚如何办理手续?</a>
O+V(i8D pp @0<span class="smalltxt">(07-27 04:07)</span>
0b].E3j&@p \,f}0</li>
e'W2\~C5K9H0<li>烟台婚姻家庭律师网h:r)D T1x
<a href="http://www.lawdiy.com/html/73/n-3673.html" target="_blank">涉外婚姻如何登记?</a>烟台婚姻家庭律师网!}6[7G:i9}WvIc[(Emb
<span class="smalltxt">(07-27 04:07)</span>
*lAG$M w+o'P7}7{{*uE0</li>
jNo x%_I]0…………………………
A}B.X+N3\0<li>烟台婚姻家庭律师网:d)Z6a w2Rb} {y3B
<a href="http://www.lawdiy.com/html/70/n-2970.html" target="_blank">论婚前财产公证</a>烟台婚姻家庭律师网 @j$gY:Tr
<span class="smalltxt">(07-25 09:07)</span>烟台婚姻家庭律师网-s;r"|7T5PK;j Ft6b$\
</li>
h:w;| d*vD!]/v0</ul>烟台婚姻家庭律师网QH[:wra_7d)g+~
<div class="pages">
.]:e-|X] HyX0<div class="xspace-page"><span class="xspace-totlerecord">89</span><span class="xspace-totlepages">1/3</span><span class="xspace-current">1</span><a href="http://www.lawdiy.com/html/87/category-catid-187-page-2.html">2</a><a href="http://www.lawdiy.com/html/87/category-catid-187-page-3.html">3</a><a href="http://www.lawdiy.com/html/87/category-catid-187-page-2.html">&gt;</a></div></div>
Y1x\ u;~$SB0</div>
+f8wOL%OZz ]4j.g0<!--论坛资源列表-->烟台婚姻家庭律师网#qqPX&[k_BIQ
</div>烟台婚姻家庭律师网)G?!L'DY c1u.p0j\p
</div>
C3u&yX"C:v(j0<!-- /Content -->

我们要采的就是“同华侨、港澳同胞结婚如何办理手续?”开始到“论婚前财产公证”之间的这一批文章,我们要告诉机器人儿,这批文章在源代码的什么位置,就是要在开始和结束之间分别设定一个标记,也就是指定“列表区域”。

提示:SS采集器中的任何开始和结束标记,都应当是唯一性的,即这代码,在源文件中只出现一次,原因很简单,如果代码有很多个,你让机器人从哪一个开始啊到哪个结束啊?比如以</ul>为结束标志就是不妥的。另外,这代码还应当是通用性的,即在同类页面中都存在。在文章列表处,应当是采第一页http://www.lawdiy.com/html/87/category-catid-187.html、第二页http://www.lawdiy.com/html/87/category-catid-187-page-2.html、第三页http://www.lawdiy.com/html/87/category-catid-187-page-3.html等各个列表中都是存在的,且是唯一存在的。烟台婚姻家庭律师网*q;D6[3J4X5{2j R |
由于CMS系统框架的统一性,这个一般不是问题,但也有个别网站个别代码只出现在第一页,而第二页没有,这样的就不可用了,考虑换别人了(如果第一页正常采集,第二页采不了,就要查查这方面的问题了)。

选择技巧:要选用最贴近内容区域的特征代码。网页上一般有很多说明啊,哈,这就是好东西。象<!--根分类最新日志列表-->类的就是好东西,<h3>资讯列表</h3>、<ul id="newslist" class="newslist">,这些都是可用的了。特别关注一些带content的、指定了大小或样式的<table>或div,一眼看上去是独有的,然后把鼠标定位于文件开始,搜一下(复制、粘贴会吧,不用说了吧),如果是唯一的,基本都可以做开始标志。结束标志切忌简单化,比如</div>、</table>、</ul>都因其不唯一化,不应选用。结否标志应当找一个特征码,比如下一个有特色的表格或div。有个很好的地方,通常一试一个准儿,那就是分页标志,如这里的<div class="pages">定义了页码的开始,正好拿来做结束标志。呵。有些网页规范地标注个<!-- 新闻列表结束 -->,拿来用用也不错的说。

提示:标志要力求简洁,虽然可以用*,但是,尽量不要用,也不要用包含回车的代码,那一提交就是一个*。当然了,实在没有别的最佳方案,也只好用了。
\ aacc:g/Cd0标志要完整,用代码切记从“<”到“>”,这点在内容采集方面尤为重要,<ul id="newslist" class="newslist">就不能只能<ul id="newslist" ,虽然可用,但如果用在内容上,就会采集到class="newslist">放在你的文章内容里,烦不烦啊?!

示例:1、<table width="572" height="3" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#C7C8CA">[list]<table width="100%" height="26"  border="0" align="center" cellpadding="0" cellspacing="0"> (width和height的指定,决定了表格代码的唯一性)烟台婚姻家庭律师网4{^+cL2{9\z.f
2、<div id="txt02"></div>[list]<!-- 分页开始 -->(妙用div和分页说明部分)烟台婚姻家庭律师网6hn$XS lZ#vFZ5B
3、<span class="kk"><!--Content Start--> </span>[list]<!--Content End-->(看人家网页,多规范,哈,开始结束都告诉你了)
? u6`,c"Va"M9O6s04、<td height="600" valign="top" background="../expert/images/dd.jpg">[list]<select name="page" onChange="javascript:location=this.options[this.selectedIndex].value;">(开始是带背景图的td,结束是页码标志)
G:p)xhLp?Lo`05、<td width="703" valign="top"><table border="0" cellpadding="0" cellspacing="0" width="100%">[list]<td width="50%" align="right"><br>第(结束用的分页标志,那位说了,你怎么没写全啊?哈,写全就不行了,后面是变化的:第1页、第2页……,再写,就不通用了)
!Z9S3D+V+x06、<TD class="d271" vAlign=top>[list]a.pagelink{ (K,就这也能用,哈)烟台婚姻家庭律师网tdD!L2bIu.G+o
7、<td class="wz12_ca02 size14" height=24>[list]<td nowrap><a href=*>首页(结束标志用了*取代了连接,为的是通用性,因为这个连接在采别的分类时可能会变的噢~,那个首页是下方的分页连接)


TAG: SS_XS ss_xs

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-08-28  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 2525
  • 日志数: 21
  • 影音数: 4
  • 文件数: 5
  • 书签数: 8
  • 建立时间: 2006-11-17
  • 更新时间: 2008-05-15

RSS订阅

Open Toolbar