火车采集器/采集任务新建

来自站长百科
跳转至: 导航、​ 搜索

火车采集器 | 安装 | 主程序 | 子程序 | 应用拓展 | 模块开发 | FAQ

任务是采集器采集数据时的基本工作单元,它一定是建立在站点中的。采集器通过运行任务来采集发布数据。

任务工作的步骤总体可以分为三步:采网址,采内容,发内容。一个任务的运行可以任意选择哪几步。而采集器又可以同时运行多个任务(默认设置是同时最多运行3个任务)。

任务的编辑界面如图:

Locoy XJRW1.jpg

采集器的使用最主要的就是对任务的设置。而采集数据可以分为两步,第一步是:采网址,第二步:采内容。

采网址[ ]

采网址,就是从列表页中提取出内容页的地址。

  • 从页面自动分析得到地址连接

以http://roll.news.sina.com.cn/news/gjxw/hqqw/index_1.shtml 页面为例。来采集这个网址上的新闻,这个页面中有很多新闻的链接,要采集每个链接中新闻内容.首先需要将每个新闻的链接地址抓取到也就是抓取内容页的地址。

先将该列表页地址添加到采集器里。点击“<<向导添加”后弹出“添加开始采集地址”对话框。选择“单条网址”并将要采集的网址添加进去。如图:

Locoy XJRW2.jpg

然后点击“添加”按钮,并点击“完成”按钮,即可添加一条采集地址。如图:

Locoy XJRW3.jpg

点击“完成”按钮后即可添加了一条采集网址。内容页的地址就从这条地址中提取出来。先不作任何过滤提取,在软件里测试下可以从该地址中得到哪些地址。如图:

Locoy XJRW4.jpg

点击“开始测试网址采集”按钮后会得到http://roll.news.sina.com.cn/news/gjxw/hqqw/index_1.shtml页面中的所有连接地址。如图:

Locoy XJRW5.jpg

其中有很多链接地址不是想要的,观察下得到得的地址发现想要的地址都包含有“/w/”。如图:

Locoy XJRW6.jpg

点击“返回修改设置”按钮回到添加采集地址界面。在“文章内容页面的地址必要包含”处填写上“/w/”(指定内容页的地址必须包含“/w/”),然后再点“开始测试网址采集”如图:

Locoy XJRW7.jpg

当再次测试得到内容页地址时,就已经过滤了很多地址剩下的地址都是包含“/w/”的,如图:

Locoy XJRW8.jpg

在采集http://roll.news.sina.com.cn/news/gjxw/hqqw/index_1.shtml页面中的地址时,由原先的81条地址过滤后只剩下了40条地址。和页面比较发现这40条地址就是想要的新闻地址。如果在已经得到的地址中,还想排除一些地址可以通过“不得包含”来过滤。假如要排除2010-03-17日的新闻,可以如图设置:

Locoy XJRW9.jpg

测试地址后如图:

Locoy XJRW10.jpg

如果既想过滤掉含有2010-03-17的地址也想过滤掉含有2010-03-18的地址可以通过这样的设置,如果:

Locoy XJRW11.jpg

中间的竖线“|”代表“或”的意思,上述写法就代表了:抓取的地址不得包含2010-03-17或2010-03-18测试地址后会发现抓取到的地址不会含有2010-03-17或2010-03-18。

  • 手动填写链接地址规则:

以百度知道的这个页面为例http://zhidao.baidu.com/q?ct=17&tn=ikaslist&rn=10&word=%CE%EF%C1%F7&lm=0&pn=00,打开这个页面发现一种有76页。其中网址如:

第一页:http://zhidao.baidu.com/q?ct=17&tn=ikaslist&rn=10&word=%CE%EF%C1%F7&lm=0&pn=00
第二页:http://zhidao.baidu.com/q?ct=17&tn=ikaslist&rn=10&word=%CE%EF%C1%F7&lm=0&pn=10
第三页:http://zhidao.baidu.com/q?ct=17&tn=ikaslist&rn=10&word=%CE%EF%C1%F7&lm=0&pn=20
第四页:http://zhidao.baidu.com/q?ct=17&tn=ikaslist&rn=10&word=%CE%EF%C1%F7&lm=0&pn=30
…….

观察后发现每页网址都是按规律递增的。可以按上面所述方法添加网址但需要添加76个单独网址比较繁琐。这种情况的网站可以使用“批量/多页”来添加网址。在任务中点击“向导添加”按钮后添加网址如图:

Locoy XJRW12.jpg

图中添加的网址 pn=00 部分改为了 pn=(*)n。

“(*)”是通配符,数字变化从0到75表示“(*)”可以代表0,1,2,3…..75,这样拼起的网址就会从pn=00到pn=750正好和要采集的页面及其所有分页。同时也可以如下图所示设置:

Locoy XJRW13.jpg

将“间隔倍数”设为10,pn=(*),得到的地址也会是从pn=00到pn=75。添加完地址后测试网址得到0级网址76个,如图:

Locoy XJRW14.jpg

添加了好网址,接下来提取需要的内容页地址。观察下测试得到的1级网址发现要通过“文章内容页面的地址必须包含\不得包含”提取出想要的地址比较困难。这样的情况用“手工填写连接地址规则”比较方便。如图:

Locoy XJRW15.jpg

点击后,会弹出如下界面:

Locoy XJRW16.jpg

接下来分析下网页的源代码(html代码),在页面上右击鼠标选择“查看源文件”,如图:

Locoy XJRW17.jpg

打开源文件可以发现要抓取的内容页连接地址都在里面,如图:

Locoy XJRW18.jpg

由网页源代码可见要抓取的每个连接地址都包含在统一的一段HTML代码中。如:

<table border=0 cellpadding=0 cellspacing=0><tr><td class=f>
<a href="链接地址" target=_blank> 

这段代码就是提取网址的脚本规则。选中“启用自定义链接格式得到地址”和“禁用系统自动识别链接”,并如下图设置

Locoy XJRW19.jpg

这样采集器在采集的时候,会从网页源文件中去匹配上图脚本规则里的HTML代码,匹配到一段这样的代码后会将“[参数]”提取出来(网页的地址)传递给实际连接。实际连接得到参数后可以做任意的组合。如实际连接处可以填写:http://zhidao.baidu.com[参数1] 这样拼接起来得到的地址正好是要抓取的地址。可以简化填写[参数1],采集器会自动补上http://zhidao.baidu.com。当采集器会匹配完所有的和脚本规则中相同的HTML代码,并不是匹配完一次就不再匹配的。测试网址后如图:

Locoy XJRW20.jpg

采内容[ ]

当所有网址抓取完后就可以开始抓取内容。抓取内容就是采集器请求到内容页后分析内容页的HTML源代码并依据在采集器中的标签规则设置匹配出相应的数据。

在测试到的地址中,任意选择一个子地址,双击选中的地址或者点击“测试该页”按钮。如图:

Locoy XJRW21.jpg

将会跳转到任务中的“第二步:采集内容规则”如图:

Locoy XJRW22.jpg

在典型页面中会出现刚才选中的网址,这里就是测试采集内容。左边的标签名下面有:出处、时间、作者、内容、标题,一共五个标签,可以对标签进行添加、删除和编辑等操作。每个标签就是采集后得到的一段内容,可以是从页面中截取的内容,也可以是设置的一个固定的值或其他方式得到的值。点测试按钮后在文本框中会得到典型页面(http://zhidao.baidu.com/question/50942867.html?si=1&wtp=wk)测试的效果,如图:

Locoy XJRW23.jpg

由图可见,测试页面后得到的内容没经过任何处理所有的网页HTML代码都在。通过在标签中设置就可以提取出所需的内容。假设现在要提取问题,问题补充和最佳答案。首先添加这个三个标签,可以重新添加标签,也可以在上图中标签里编辑。我们重新添加一下。先将原来的标签删除再点击“添加标签”按钮后在“内容页标签编辑框”中填写上标签名:问题。

如图:

Locoy XJRW24.jpg

再打开http://zhidao.baidu.com/question/50942867.html?si=1&wtp=wk 页面并查看该页的HTML源代码。在源代码中可以找到页面中的问题部分。如图:

Locoy XJRW25.jpg

在“内容页标签编辑框”中进行相应的设置句可以从网页HTML源代码里得到需要的内容。

复制页面HTML中“

<cq>”后在文本中向上查找发现查找不到与该段相同的代码,说明此处是该段代码第一次出现的地方。如图:
Locoy XJRW26.jpg

复制这段代码到“内容有标签编辑框”的“开始字符串处”。 “</cq>”是“<div class="f14 B wr" id="question_title"><cq>”后面第一次出现的地方。复制“</cq>”到“结束字符串”处。如图:

Locoy XJRW27.jpg

点击“确定”按钮后点“测试”按钮得到页面中的数据。如图:

Locoy XJRW28.jpg

采集器首先从网页源代码(HTML代码)中从头开始往下查找“开始字符串”中的内容第一次出现的位置(例上面:<div class="f14 B wr" id="question_title"><cq>),当找到与“开始字符串”处相同的内容时,再从找到的位置开始往后查找“结束字符串”处中的内容的(例上面:</cq>)第一次出现的位置(后面再次出现时不再理会)。当找到了“开始字符串”和“结束字符串后”就会提取出它们之间的内容作为采集到的内容。

再如来提取最佳答案。新建“答案”标签,分析网页源代码。“<div class="f14 p90 pl10" id="best_answer_content">”是答案得内容前面的一段代码,把它作为“开始字符串”处。通过txt文本中的查找发现这段代码是第一次出现的地方所以可以用做“开始字符串”处的内容。不难发现“<div class="f14 p90 pl10" id="best_answer_content">”后第一次出现的“</div>”正好是在答案内容的结束的地方所以可以将“</div>”当做“结束字符串处的内容”。如图设置。

Locoy XJRW29.jpg
Locoy XJRW30.jpg

保存标签测试后得到的效果如图:

Locoy XJRW31.jpg

这样就采集到了最佳答案内容,发现内容中含有“<ca><pre><\pre><\ca>”这样的HTML代码,内容开头和结尾处也有很多的空格,可以在标签设置里将这些没用的代码排除。设置如图:

Locoy XJRW32.jpg

其中HTML标签排除中的“所有标签<”是指排除掉采集的内容中的所有“<”括起来的HTML标签。“<ca><pre><\pre><\ca>”就属于“<”类型的标签,所以可以被排除。保存标签测试如图:

Locoy XJRW33.jpg

这样通过排除一些无用的东西基于可以得到了纯净的内容了。


参考来源[ ]

火车采集器使用手册导航

安装

系统安装

主程序

主程序|主菜单|命令行启动|随机文件夹保存数据|正则匹配模式采集数据|采集记录筛选|代理服务器采集数据|POST方式获得网址|拓展插件|分页采集|多页采集|数据导出|多任务多线程|手动链接格式设置|循环匹配采集|网站登陆采集|列表缩略图及标签采集|html标签排除|全局词语替换|首图缩略|FTP文件上传|附件上传|本地数据编辑|下载导出|图片下载|Flash文件下载|任意格式文件下载|采集数据导入数据库|任务定时自动更新|任务运行日志|自动中文分词|自动摘要和拼音|前后截取模式|采集任务新建

子程序

源代码获取与模拟|Web在线发布模块编辑器|Web在线发布配置管理|数据库发布模块编辑器|数据库发布配置管理|工具箱|编程插件管理|翻译测试|中文分词测试|自动运行管理器 任务队列管理器|自动升级程序

应用拓展

数据库发布模块编辑器制作|外部编程插件开发

模块开发

DedeCMS文章模块|PHPWind论坛模块|Discuz论坛模块

FAQ

使用前常见问题|编辑任务中常见问题|发布失败常见问题|使用中常见问题|VIP版本常见问题