快捷导航
大神们!

我正在爬http://58.30.24.151/lxs_ml_index.aspx的数据,主题名是:北京供应商。

我选择了(如图1)样例一(第一行)和样例二(第二行),
但是我做了测试后(如图2),只出现了样例一的结果,并没有其他更多。

这个是为啥呢?有大神可以帮忙解答吗?!

感谢!


图1

图1

图2

图2
举报 使用道具
| 回复

共 7 个关于本帖的回复 最后回复于 6 天前

Fuller 管理员 发表于 2018-8-2 11:42:38 | 显示全部楼层
定位偏好20180802114011.png
可以观察一下,每一行的id都不一样,集搜客爬虫在生成规则的时候,会首选id作为定位标志,这样就不合适了。可以点击“定位”按钮,选择“只用class”。

要想观察生成的抓取规则是否合适,可以点击“测试”按钮,在弹出的框中有一个tab:数据规则,在那里可以看到生成的抓取数据的规则
举报 使用道具
ylling 新手上路 发表于 2018-8-2 12:22:18 | 显示全部楼层
Fuller 发表于 2018-8-2 11:42
可以观察一下,每一行的id都不一样,集搜客爬虫在生成规则的时候,会首选id作为定位标志,这样就不合适了 ...

非常感谢您的帮助,我已按照您的建议,测试成功!
我是小白,方便的话能否帮我解答一下定里ID和CLASS的区别。

举报 使用道具
Fuller 管理员 发表于 2018-8-2 15:27:39 | 显示全部楼层
ylling 发表于 2018-8-2 12:22
非常感谢您的帮助,我已按照您的建议,测试成功!
我是小白,方便的话能否帮我解答一下定里ID和CLASS的区 ...

集搜客网络爬虫生成采集规则的时候,会自动首选id,次选class。这些id和class本来为了显示颜色、字体、布局方面用的。在另一个css文件里面规定某个id或class的显示样式。所以,这些id或者class被称为样式选择器。

我们借用了这些class和id,如果不用他们,生成xpath将是一个很长的表达式,从/html开头,把经过的DOM节点都列出来,这样的话不灵活,万一网页前面显示了一块广告,这个xpath就受影响了,定位不到了。

如果借用class和id,xpath表达式就不用从/html开始,而是从某个合适的含有class和id的节点开始,写成 //div[@id='xxxxx']/yyy  这样样子,那么出现在这个div之前的广告和其他网页变化,都不影响xpath的有效性,因为前面的节点都跳过去了,直接从这个div开始定位的。


所以,爬虫会尽量用class或者id。通常id会是唯一的,class会是多个节点共用,某些节点,显示的样式一样,那么他们用相同的class进行控制。


你的规则一开始用的是id,每个样例中的某个内容有唯一的id,如果这个id用在xpath中,只能抓取到一个样例。


注意:id并不是必须是唯一的,这个只是一种建议,所以,有些时候用上id也能抓取多个样例
举报 使用道具
ylling 新手上路 发表于 2018-8-7 16:26:07 | 显示全部楼层
Fuller 发表于 2018-8-2 15:27
集搜客网络爬虫生成采集规则的时候,会自动首选id,次选class。这些id和class本来为了显示颜色、字体、布 ...

很受用,谢谢大神!

举报 使用道具
ylling 新手上路 发表于 2018-8-7 17:45:32 | 显示全部楼层
ylling 发表于 2018-8-7 16:26
很受用,谢谢大神!

大神 ,我上周测试了你说的“只选 class”  是成功的,前几天手头有事情就给耽搁了,我今天操作发现新的问题,我“内容映射”选的是公司名和电话,按你说的“定位”选择“只用class”,为何测试后出现图2的情况,而非我选的公司名和电话?
难道是我样例复制这一步错了?我选了“TR”。
只能求助了!





图1.PNG
图2.PNG

图1

图1

图2

图2
举报 使用道具
Fuller 管理员 发表于 2018-8-7 20:44:47 | 显示全部楼层
ylling 发表于 2018-8-7 17:45
大神 ,我上周测试了你说的“只选 class”  是成功的,前几天手头有事情就给耽搁了,我今天操作发现新的 ...

定位标志20180807204049.png

这个网页上的id属性往往都带有一个唯一性的数字,所以,“定位”按钮设置的定位偏好应该是“只用class”才能采集多个样例。

但是,又有大量的class都相同,不同字段的class也相同(观察上图红色箭头),就遇到你的问题了,采集到的结果都一样了。对于这个网页,可以这样解决,观察上图DOM上3个红框,他们的class各不相同,这样就手工做定位标志映射(3个蓝色箭头),如果不手工做定位标志映射,会自动使用那个相同的class(红色箭头)。

注意,定位标志映射以后,会自动选用id,这个选择不合适,要双击抓取内容,在高级设置那里选择class。看右下角那个弹框
举报 使用道具
ylling 新手上路 发表于 6 天前 | 显示全部楼层
Fuller 发表于 2018-8-7 20:44
这个网页上的id属性往往都带有一个唯一性的数字,所以,“定位”按钮设置的定位偏好应该是“只用class ...

好滴,谢谢耐心解答!!!
举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

精彩推荐

  • 自动导入导出数据
  • 批量爬取蘑菇街商品价格、评论信息
  • 微博用户数据分析
  • 批量爬取苏宁商品价格、评论信息
  • 批量爬取亚马逊商品价格、评论信息

热门用户

集搜客GooSeeker网络爬虫 ( 粤ICP备11065265号-2 )

GMT+8, 2018-8-15 11:31