以织梦官方站为例,我们采集站长学院下的PHP教程栏目,打开列表地址http://www.dedecms.com/web-art/PHP_jiaocheng。
登录后台,进入“采集节点管理”,新建一个节点,选择内容模型为“普通文章”。
1.设置节点基本信息 先填写一个方便记忆的节点名称,选择目标页面编码为GB2312,防盗链模式不做设置,因目标站没做限制,这一项就不做修改,系统默认超时时间10秒。
2.设置列表网址获取规则
这一步我们要做些设置,获取文章列表地址,回到目标站列表页,观察分页间的变化,可以发现只有“14_”后的数字有规律的递增变化。
首页:http://www.dedecms.com/web-art/PHP_jiaocheng/list_14_1.html
中间:http://www.dedecms.com/web-art/PHP_jiaocheng/list_14_(*).html
末页:http://www.dedecms.com/web-art/PHP_jiaocheng/list_14_172.html
复制一个分页地址,回到“新增采集节点”页面,选择“来源属性”为“批量生成列表网址”,把粘贴地址到“匹配网址”中,修改规律变化处为(*),“批量生成地址设置”处(*)输入1到172,这里的意思是生成出列表第一页到最后172页的所有地址。
测试一下,在弹出框中我们可以看到循环出172条地址记录,很顺利的就设置好了。有时候会碰到较难获取的列表,那我们可以把把没规律的地址复制到”手工指定列表网址“文本框中来采集。
3.设置文章网址匹配规则
上面指定好了文章地址来源页,这一步就需要在这些页面中找出符合要求的文章地址页了。打开一个列表页面观察,左栏的方框中包含了我们需要的全部地址,这种情况区分明显的页面,可以利“区域开始的HTML”和“区域结束的HTMLL”设置进行过滤。
不过也可以使用其他方法。把鼠标移到各处链接地址,观察浏览器左下角显示的完整地址,我们需要的地址都包含“PHP_jiaocheng/20”,那我们把它填写到“必须包含”中。
两种方法都能够过滤出地址,碰上复杂页面,可以配合起来使用,加上正则,几乎没有筛选不出的地址,附(图5.1)对照。最后确定,进入下一步“网页内容获取规则”。
(图5.1)
4. 网页内容获取规则
上面介绍了列表设置的方法,接下来我们进入内容获取规则的设置,如果说采集是上菜的话,上面一到三步的作用,只是开胃菜为下面的主菜做引。接下来是介绍如何从目标站把文章内容采集过来,这一步是是整个采集中最为核心的部分。
继续回到织梦的PHP教程列表,随便打开一篇列表中的文章,这里我们以《正则表达式》这篇文章为例:http://www.dedecms.com/web-art/PHP_jiaocheng/20070420/38633.html ,把该地址复制到“预览网址”;因为织梦所有文章都没分页,所以这里的分页就无需设置,直接进入“固定的采集项目”页面
(注:如果采集的内容含有分页,只需要将分页导航部分的匹配规则设置完成即可,这里有全部列出的分页列表、上下页形式或不完整的分页列表根据内容进行设置即可)以下为引用的内容:
全部列出的分页列表:分页内容列出所有的链接,如下图所示
上下页形式或不完整的分页列表:单页显示当前分页内容,不完全显示的列表形式
5. 固定的采集项目 进入这一步,就开始对页面源码进行分析了,采集无非是分析HTML页面的结构,从而获取我们所需的内容。所以要求我们对HTML代码有一定的认识,能通过查看页面源文件,找出需要的内容,最好多开几个页面进行分析,找出相同处。
推荐大家使用Dreamweaver分析。在分析页面代码的时候,多使用搜索功能,会方便很多,特别是找到标签后,搜索一下看有无重复以减少分析错误。
1) 文章标题:这个页面的标题是“正则表达式”复制下它,在Dreamweaver按Ctrl+F键搜索全部,有30项记录。因为唯一性,这里我们选择105行这段“
正则表达式
”标签,复制到“固定采集项目”文章标题的匹配规则中,并用关键字“[内容]”替换标题,最终为[内容]
。2) 作者:以作者为关键字继续搜索,只有110行有唯一的出现,连同alluse前后的标签一起复制到匹配规则中,使用[内容]替换要采集处。
3) 来源:同上操作在109行找到标签,复制过去,使用[内容]替换要采集处。若来源包含超链接标签想去掉,则在过滤规则框,填写如下规则过滤掉:
]*)>
4) 发布时间:同上操作在111行处进行复制粘贴和修改。
5) 文章内容:搜索文章内容的开始部分,例如“第一部分”在118行发现目标,点击状态栏
发现未能全部选中文章内容,继续前一个
,蓝色内容选中全部内容,知道至此,内容的过滤都设置都完成了,接下来就是预览效果了,附完成图5.2
(图5.2)
6. 节点采集
如果你的采集节点是一气呵成而且测试成功的话,按提示点击按钮,就可以直接采集了,但是节点是之前写的,就需到“节点管理页”勾选需采集节点,按“采集”按钮进行采集了。若你想采集所有节点的新内容,那就到监控采集页面进行操作吧。
每页采集可以设置每页采集的数据条数,一般来说不要设置太大,否则有可能导致系统处理不过来而部分采集不到,建议别超过15。
线程数是指每次有多少个线程同时进行采集,线程数的增加可以加快采集速度,但相应的会增加服务器资源的占用,所以请慎用。假若目标站点有防刷新限制,此处就可以根据目标站点的防刷新限制时间进行设置,假如没有就默认0秒可以了。
附加选项这三个设置从字面上应该可以很容易理解,这就根据你的实际需要进行选择了。
7. 采集后的处理
采集完成后,点击“查看种子网址”进入查看采集的结果。这里罗列出了采集回来的内容。可以点击进去查看采集到的内容有无问题的。
在这个列表中有些数据,可能显示的是“未下载”,引起的原因可能是设置的采集条数过大导致的。出现这样的情况仅需要在上面采集的“附加选项中”选择“仅下载未下载内容”,然后再进行一次采集即可。假如要删除部分不满意的数据,可以在列表中在你要删除的数据前面打勾,然后按“删除所选网址”即可,这里支持批量操作。
8. 将采集的数据入库
这里有多个入口:
1) 在节点管理页中选择刚才采集的那个节点,然后点击下面的“导出数据”按钮进入入库操作。
2) 直接点击刚才采集的节点进入“临时内容管理”页面,点击右上方的“导出内容”按钮即可进入入库操作。
3) 选择节点后点击“采集”按钮进入采集页面,在右上方有“导出数据”按钮,点击后也可进入入库操作页面
(注:导出数据请勾选“排除重复标题”选项来避免重复导入内容,如果重复导入内容可以使用后台的批量处理中检测重复标题的功能进行修复)
首先选择要导入到的栏目,按“请选择”那里即可在弹出的窗口中选择你需要导入的栏目发布选项这里一般默认即可,除非你不想马上发布。每批导入默认是30条,这里修改与否都无所谓,附带选项一般选“排除重复标题”,至于自动生成HTML那个选项建议先别生成,因为我们还要去批量提取摘要和关键字。