从制作规则到采集数据的三个步骤

2015-8-10 17:12| 发布者: ym| 查看: 40153| 评论: 20

摘要: 对集搜客功能按钮有一定了解后,下面将讲解集搜客的实操应用,我们先从最基本的入门,下面将通过定义一个简单的抓取规则,来感受一下集搜客是如何使用的。按照以下三步走,就可以完成抓取规则的定义和抓取数据,如下 ...

请转到最新版的教程

集搜客想让你最便捷地获取数据,让你有“要什么就抓什么”的感觉,要记住核心要领:

第一步:先建立一个箱子,这里要存储你想抓的内容(术语叫整理箱)

第二步:接着告诉集搜客程序,网页上哪个内容需要丢到箱子中(术语叫:映射)

集搜客能自动生成抓取规则。不用从技术角度去规划怎样循环,集搜客能自动处理这些技术过程。掌握了这两个要领,我们看看细节吧。


集搜客功能按钮有一定了解后,下面将讲解集搜客的实操应用,下面以采集论坛的标题、回复数为例,讲解整个使用流程,也可以先了解一下爬虫的工作原理

第一步:用MS谋数台建立整理箱

1.1确定目标网页和抓取内容

确定样本页面和要抓取的网页信息(即抓取内容),根据网页信息的结构,建立一个整理箱,用于存储采集的网页信息。

  1. 样本页面:http://www.gooseeker.com/cn/forum/7
  2. 采集内容:采集网页中所有帖子的topic标题和replies回复数量
  3. 规则:集搜客_入门(可点击下载规则)

1.2命名主题

输入目标网址并加载出样本页面,为这个采集规则起个名字,以后需要查看和修改规则时,就要在“搜规则”窗口里输入该主题名或*进行查找,如图1。

图1 命名主题

  • 图1步骤分解:
  1. 去火狐浏览器的“工具”菜单里打开MS谋数台。
  2. 在“网址框”中输入或拷贝样本网址,回车Enter,当“页面地址”自动填入当前样本网址时,标志着网页加载完毕。注意:如果是长网页,请拖动右侧的滚动条到底部,然后点击文件菜单->刷新网页结构,保证网页信息都加载出来后再开始做规则。
  3. 输入主题名,主题名可以是中文、英文、数字的组合,注意:纯数字及@#$等特殊字符暂不支持,且首个字符不支持数字
  4. 由于主题名要求是唯一的,所以,还要点击“查重”按钮来检查主题名是否唯一有效。

1.3创建整理箱

根据要抓取的网页信息,建立整理箱存储这些信息,整理箱结构基本上是对应目标信息的网页结构建立的。

图2:创建整理箱

  • 图2步骤分解:
  1. 建立整理箱:切换到“创建规则”窗口,点击“新建”按钮,输入整理箱名称并确定,这不仅是整理箱的名字也是其顶层节点。
  2. 建立抓取内容:右击整理箱空白处,弹出快捷菜单,选择添加->包容,输入抓取内容的名称,通过“包容”可建立多层次的整理箱结构。
  3. 同理,右击选择其前or其后,可建立同层级并列的抓取内容。
  4. 勾选“关键内容”:“关键内容”是DS打数机判断是否提取网页数据的参照点,如果没勾关键内容,DS可能什么都不采集,如果要勾,请选择网页上必然显示的抓取内容,勾了“关键内容”,但网页上又没有的话,DS也会采集失败并报错,所以,建议经过DS采集测试后再决定勾哪个抓取内容。


第二步:把网页信息映射到整理箱

2.1单点采集:内容映射

要想从网页上抓数据,就得告诉软件要采集哪些信息,这个过程叫做“映射”。如图3,把网页上第一条帖子的标题和评论数量信息映射给整理箱的“标题”、“评论数量”,这样就能把网页上的单条信息采集下来。

图3:建立映射关系

  • 图3步骤分解:
  1. 点击网页上的第一条标题,会自动定位到网页标签中的A节点(有三角图标且包含下层节点的DOM模块节点,反过来在网页标签窗口点击HTML标签节点,也可以在网页中看到定位的闪烁红框。
  2. 双击展开A节点,找出包含标题的#text节点。PS:点击任意节点都可以在“文本内容”中看到其包含的信息,一般的文本信息是以#text节点显示的,初学者多点几次就能找到。
  3. 右击#text节点,选择“内容映射”->“标题”,映射后,抓取内容的定位编号将由默认的-1更新为所映射节点的定位编号。
  4. 按照这种方法,对整理箱的抓取内容都进行映射。PS:内容映射只可以映射#text节点和属性节点(以@开头的节点),关于如何映射模块节点可以参考《如何抓取网页片段完整信息》
  5. 对于顶层节点,根据需要可对其做样例复制映射或做定位标志映射或不做任何映射

2.2批量采集:样例复制

如果网页上有多条结构相同的信息,我们把这样的一条结构信息称之为样例,多条结构化信息就是多样例。如图3,整理箱里只对第一条信息做映射,就只得到一条样例信息。但只要再做上样例复制映射,如图4,就能把该网页所有相同结构的信息都采集下来。

图4:样例复制

  • 图4步骤分解:
  1. 点击整理箱的容器节点“列表”,勾选“样例复制管理”框中的“启用”按钮。
  2. 注意:容器节点是指整理箱中包容下层抓取内容的抓取内容(如顶层节点“列表”),另外,做了“样例复制”的抓取内容就不能再做内容映射了。
  3. 找到第一条样例、第二条样例的DOM块节点,右击第一条样例的DOM块节点选择“样例复制”->“第一个”,把它映射给样例1,就把对应的定位编号映射给了样例1,同理,把第二条样例的DOM块节点映射给样例2。
  4. 注意:如何区分及选择样例节点请参考教程http://www.gooseeker.com/doc/thread-653-1-3.html

Tips:如需翻页采集,就要在规则的爬虫路线里设置翻页,具体操作请看翻页采集教程

2.3测试规则有效性

定义好规则后,可以测试一下规则是否能采集到完整的目标信息,如图5。


图5:测试

  • 图5步骤分解:
  1. 点击“测试”按钮,马上就能验证规则的有效性和抓取内容的准确性,如果失败,请根据错误提示进行修改。
  2. 规则没问题的话,就会在“输出信息”窗口可以看到相应的采集信息。PS:每一条信息都会显示在< item >< / item >之间。

2.4保存规则

测试没问题后,点击“存规则”按钮,把规则保存到服务器中,如需修改规则请看文章如何查看、修改、另存、删除规则,如图6。


图6:存规则

  • 图6步骤分解:
  1. 点击右上角的“存规则”按钮,保存规则的同时,也会把样本网址保存为一条未采集的线索
  2. 若有数据遗漏或提示报错,就要调整整理箱与网页信息的映射关系。
  3. 点击“爬数据”按钮,测试采集规则能否准确抓取到目标信息,若采集失败或遗漏,请加载规则进行修改。PS:定义规则后,必须点击“存规则”按钮,否则,DS打数机无法抓取数据。


第三步:用DS打数机抓取网页数据

3.1运行DS打数机采集数据

DS打数机就是一个网络爬虫,会根据采集规则,执行网页数据提取操作,如图7。


图7:启动DS打数机抓取网页数据

  • 图7步骤分解:
  1. 在火狐工具菜单里启动DS打数机采集数据,更多运行方法可阅读DS打数机如何采集数据
  2. 抓取成功后,可以在本地查看结果文件,也可把结果文件导入excel查看。

3.2添加或激活线索

做好一个采集规则,可以批量采集相同结构的网页。例如,做了百度搜索结果的采集规则,可以把不同关键词的搜索网址导入到规则里进行采集,不用针对每个网址都做一个规则。参考教程如何添加或激活线索


扩展阅读:

  • HTML元素指html中从开始标签(start tag)到结束标签(end tag)的所有代码。
  • HTML属性属性总是以名称/值对的形式出现,比如:name="value"
  • DOM:(Document Object Model,简称DOM)文档对象模型,定义了访问HTML和XML文档的标准。它将网页中的各个元素都看作一个个对象,从而使网页中的元素也可以被计算机语言获取或者编辑。
若有疑问可以集搜客网络爬虫
40

鲜花
6

握手

雷人
1

路过
4

鸡蛋

刚表态过的朋友 (51 人)

相关阅读

发表评论

最新评论

评论 Fuller 2017-1-8 17:42
asderaa: 名字起的太难懂了
这是老版教程,新版在这里:http://www.gooseeker.com/doc/article-340-1.html
评论 asderaa 2017-1-8 17:00
名字起的太难懂了
评论 Fuller 2016-8-16 09:19
myselfbing: 感觉“谋数台、打数机”这种软件命名怪怪的,不像其他抓取软件这么好理解。看半天教程还没摸到头脑。
直观标注,把你想要的内容选中,做个标注,就会放到一个整理箱中,不用规划循环,可以先看这个:http://www.gooseeker.com/doc/article-143-1.html
评论 myselfbing 2016-8-16 09:03
感觉“谋数台、打数机”这种软件命名怪怪的,不像其他抓取软件这么好理解。看半天教程还没摸到头脑。
评论 myselfbing 2016-8-16 09:02
软件操作太复杂了
评论 echoafulike 2016-2-23 20:03
讲的特别详细,很好,很实用
评论 elfclz 2015-9-15 18:42
好赞
评论 ivanzhai 2015-8-21 16:31
不错!太棒了!终于不怕被淘宝封了
评论 tthaizhiguang 2015-8-14 00:32
tthaizhiguang: 启动了启动DS打数机,也搜到了主题, 但是:  - 点击爬数据,出现错误,错误提示:   Failed: Crawl cannot be initiated from the state of FAILED  - 点击 “ ...
问题解决了,可能是自己的Firefox 的版本和安装的gooseeker 版本不一致导致的,卸掉火狐,重新从gooseeker 官网下载火狐和gooseeker插件 ,重新安装,一切OK~
评论 tthaizhiguang 2015-8-14 00:31
tthaizhiguang: 可以抓数据了, 不过这个例子好像只是实现了单页数据的抓取,即只抓了列表第一页的内容,怎么实现多页的数据抓取啊 ?? ...
http://www.gooseeker.com/cn/node/document/metaseeker/cookbookv4/ajax.html
这篇文章中倒是提到了如何抓取分页数据,里面提到了续长模式,新版的MS谋数台的续长模式按钮菜单在什么地方,怎么没找到,或者那个地方可以实现类似的功能?
评论 tthaizhiguang 2015-8-14 00:10
可以抓数据了, 不过这个例子好像只是实现了单页数据的抓取,即只抓了列表第一页的内容,怎么实现多页的数据抓取啊 ??
评论 ym 2015-8-13 10:58
回复tthaizhiguang :
可能是网络原因,软件没有跟服务器连接上,所以会报这样的错误,重启一下再连接应该就可以了
评论 驻在冰箱的企鹅菌 2015-8-13 10:57
按教程试一试
评论 tthaizhiguang 2015-8-13 08:10
启动了启动DS打数机,也搜到了主题, 但是:

- 点击爬数据,出现错误,错误提示:

Failed: Crawl cannot be initiated from the state of FAILED

- 点击 “单搜”,出现错误,错误提示:
网络爬虫状态错误。
无法从FAILED状态启动爬虫

在MS里面 点击测试,数据输出是正确的,
为什么不能爬出结果到本地呢?这个是怎么回事???
评论 权利 2015-8-12 21:52
感觉很强大的样子,试试
评论 Lemon tree 2015-8-12 15:27
真的有抓到数据了 以后要数据有着落啦!! 队友再也不用担心数模比赛没有数据了~~
评论 zhouzhou1 2015-8-12 10:47
For数据: 暂时还没发布,你可以查看社区<a href="http://www.gooseeker.com/doc/thread-184-1-1.html" target="_blank">http://www.gooseeker.com/doc/thread-184-1-1.html</a>如何将html文件转换成excel实现
恩 已经学会  谢谢
评论 For数据 2015-8-12 10:42
zhouzhou1: 文章“如何用Excel打开和查看XML文件” 在哪?好像没看到。。。。。
暂时还没发布,你可以查看社区http://www.gooseeker.com/doc/thread-184-1-1.html如何将html文件转换成excel实现
评论 zhouzhou1 2015-8-12 10:39
文章“如何用Excel打开和查看XML文件” 在哪?好像没看到。。。。。
评论 For数据 2015-8-11 09:51
不错,轻松搞定,抓数据真的可以这么简单,点个赞

查看全部评论(20)

GMT+8, 2024-3-28 23:45