内容采集中分页的设置
来源: admin|点击:次|2011-03-20 21:46
一般的数据采集软件可以这么理解,定义头和尾,除了在截取链接不需要检测,在其它地方你定义的头和尾,在同一个html表里不能有相同的,为什么不能有相同的呢?是因为采集的每一步(除了截取链接外)都是根据你所定义的头和尾来截取页面内容的。所以你在定义头和尾不仅不能有相同的,还要尽可能地把不需要的内容排除开。如果你理解了这个定义头和尾,基本上对于简单的页面是能采集的。下面我以一个实例来说明一下:
以下内容为程序代码:
新闻列表网址:http://ent.qq.com/newxw/thd_sjym.htmhttp://ent.qq.com/newxw/thd_sjym.htmhttp://ent.qq.com/newxw/thd_sjym.htm
列表开始代码: <td style="padding-left:6px;"><table border="0" cellpadding="0" cellspacing="0" class="table_logo">
列表结束代码: <td height="5" colspan="2"></td>
链接开始代码:·<a target="_blank" href="
链接结束代码:">
标题开始标记:<title>
标题结束标记:</title>
正文开始标记:<div id="ArticleCnt">
正文结束标记:<div id="ArticleTopic"></div>
上面所采集的页面是比较标准的。现在来分析一下:
列表网址:就是你要采集的页面,这一步很关键,以前这一步我是乱搞,现在发现这一步关系到你能否采集完所有内容。一般你进入采集页面先判断一下是不是有多页,如果有多页你进入第二页和第一页是不是有规律变化,比如是:xxxx_1.htm,xxx_2.htm,特别注意数字,如果第一页开始就有_id的规律,那就把第一页作为列表网址,如果第一页与第二页没相关规律,而是从第二页开始才能这样的规律,那将第二页作为列表网址,第一页放到一边,等所有数据采集完了,再来采集单独页面,反正以后也只采集第一页,为啥?因为一般更新的都在第一页。
列表开始与结束:这里就是向采集程序说明你要采集的内容大概方向,比如上例里的列表网址,里面有好多内容,我只采集右边的新闻,这时你可以搜索第一条新闻,向上看,找段在这个HTML文件里唯一的内容,这里定义头和尾要值得注意的是:空格也算的。比如<a href前有四个空格,这也算个特征,反正不管怎么样,只要是全文仅有的就行。同样方法,只是这次搜索最后一条新闻,定位一下,省得全文乱找,浪费时间,往下推找个全文仅有的代码,
链接开始与结束,这里你得看一下采集页面了,然后再看HTML文件,一般是<a href= 开始,>结束。中间的内容就让采集程序帮你去放
到这里已经接近成功了,这时为了保险一点,随机点五个页面,找五个页面的共同点,把标题开始与结束,正文开始与结束填一下,
最后测试一下。应该可以了吧。
下面谈谈分页,分页有二种,一种是采集页的分页,另一种是文章内容的分页。
采集页的分页:
例:
以下内容为程序代码:
新闻列表网址:http://www.pconline.com.cn/mobile/news/hgxz/index_1.htmlhttp://www.pconline.com.cn/mobile/news/hgxz/index_1.html
列表开始代码:1px solid; ">文章列表 </TD>
列表结束代码: <DIV ALIGN="CENTER">
列表索引分页: 批量生成:http://www.pconline.com.cn/mobile/news/hgxz/index_{$ID}.htmlhttp://www.pconline.com.cn/mobile/news/hgxz/index_{$ID}.html
生成范围:4to1
链接开始代码:<a href="
链接结束代码:target="_blank"
标题开始标记:<title>
标题结束标记:-太平洋电脑网Pconline-[手机新品速递]</title>
正文开始标记:广告:ad_top</IFRAME>
正文结束标记:<br clear=all>
请注意列表网址与列表索引分页链接的不同之处:就是将index_1.html改为了index_{$ID}.html,
生成范围:这里有多少页就?to?,有二种选择,由后到前,前到后,随便你喜好。
内容页的分页:
例:
以下内容为程序代码:
新闻列表网址:http://www.enet.com.cn/emobile/inforcenter/articlelist.jsp?page=1&atype=A&acid=4146http://www.enet.com.cn/emobile/inforcenter/articlelist.jsp?page=1&atype=A&acid=4146
列表开始代码:<td class="filter4" width="350"><font color="#FFFFFF">手机资讯
列表结束代码: <td height="2"></td>
批量生成: http://www.enet.com.cn/emobile/inforcenter/articlelist.jsp?page={$ID}&atype=A&acid=4146http://www.enet.com.cn/emobile/inforcenter/articlelist.jsp?page={$ID}&atype=A&acid=4146
生成范围:10to1(这样的好处最新新闻在前面,不然刚好跟采集页面相反,最后一页为最新新闻)
链接开始代码:<td><a href="
链接结束代码:target="_blank"
标题开始标记:<strong class="p24">
标题结束标记: <td align="center">(这里要把前面的空格一起复制了,不然会出现错误)
正文开始标记:<table width="100%" border="0" cellspacing="0" cellpadding="2" align="center">
正文结束标记:<p id="adv_under_cont"></p>
下页开始标记: <a href="./(找到下一页,把<a href="./的空格也复制了)
下页结束标记:">下一页</a>
请注意下页开始与结束:找到分页代码,找到下一页的代码:定义好下一页开始与结束就OK。这里多试几次,因为这里代码可选择范围小。
这样最后得到的数据就是你想要的,你还可以添加一些其它高级用法,比如说过滤标签,替换一些内容,更高级的便是用伪原创把文章变成原创,在此就不啰嗦了。大家可以自己研究一下。然后得到结论。