主题名:点评_商户详情

问题描述:之前一直有抓取过数据,当时就有一个详情链接字段数据时有缺失,需要抓几次左右,才能抓全,自定义没问题。
还专门贴了个帖子求教:http://www.gooseeker.com/doc/for ... amp;page=2#pid15704

今天规则直接报废了:

加载抓取规则遇到的错误:
无法定位容器 No.0
无法定位抓取内容 No.1 (情景2);XPath是a[position()=1]
无法定位抓取内容 No.2 (情景2);XPath是a[position()=2]
无法定位抓取内容 No.3 (情景2);XPath是a[position()=3]
无法定位抓取内容 No.4 (情景2);XPath是a[position()=4]
无法定位抓取内容 No.5 (情景2);XPath是following-sibling::div[position()=1]/div[position()=1]/h1/text()[position()=1]
无法定位抓取内容 No.6 (情景2);XPath是following-sibling::div[position()=1]/div[position()=1]/h1/a[position()=3]
无法定位抓取内容 No.7 (情景2);XPath是following-sibling::div[position()=1]/div[position()=1]/div[position()=1]/span[position()=2]/text()
无法定位抓取内容 No.8 (情景2);XPath是following-sibling::div[position()=1]/div[position()=1]/div[position()=1]/span[position()=3]
无法定位抓取内容 No.9 (情景2);XPath是following-sibling::div[position()=1]/div[position()=1]/div[position()=1]/span[position()=4]
无法定位抓取内容 No.10 (情景2);XPath是following-sibling::div[position()=1]/div[position()=1]/div[position()=1]/span[position()=5]
无法定位抓取内容 No.11 (情景2);XPath是following-sibling::div[position()=1]/div[position()=1]/div[position()=1]/span[position()=6]
无法定位抓取内容 No.12 (情景2);XPath是following-sibling::div[position()=1]/div[position()=1]/div[position()=2]/span[position()=2]
无法定位抓取内容 No.13 (情景2);XPath是following-sibling::div[position()=1]/div[position()=1]/p[position()=1]/span[position()=2]
无法定位抓取内容 No.14 (情景2);XPath是following-sibling::div[position()=1]/div[position()=1]/p[position()=1]/span[position()=3]
无法定位抓取内容 No.15 (情景2);XPath是following-sibling::div[position()=1]/div[position()=1]/div[position()=3]/p[position()=2]/span[position()=2]/text()
无法定位抓取内容 No.16 (情景2);XPath是following-sibling::div[position()=1]/div[position()=1]/div[position()=3]/p[position()=2]/a/@href
无法定位抓取内容 No.17 (情景2);XPath是following-sibling::div[position()=1]/div[position()=1]/div[position()=3]/p[position()=5]/span[position()=2]/span[position()=3]/a/@href
无法定位抓取内容 No.18 (情景2);XPath是following-sibling::div[position()=1]/div[position()=1]/p[position()=2]/text()[position()=2]




改了好几次规则,请查看我现在的规则,并点击测试,测试结果就是我需要的数据。

以下几个线索,为抓全失败线索,供查看:

http://www.dianping.com/shop/1934668
http://www.dianping.com/shop/21829897
http://www.dianping.com/shop/8022978
http://www.dianping.com/shop/500792
http://www.dianping.com/shop/1903537
http://www.dianping.com/shop/4131721
http://www.dianping.com/shop/500643
http://www.dianping.com/shop/14684855



谢谢。
举报 使用道具
| 回复

共 3 个关于本帖的回复 最后回复于 2017-1-6 09:07

沙发
Fuller 管理员 发表于 2017-1-5 23:13:21 | 只看该作者


上图,首先,样本页面上没有“人均消费”,所以整理箱中创建这个抓取内容会很影响抓取规则的适应性。如果确实需要,那么用自定义xpath,而且要使用“专用定位”,定位的表达式指向网页上总是存在的那个节点,而内容表达式是真正的抓取“人均消费”值得xpath

上图,其次,整理箱太复杂了,跨越了网页上很大的范围,只要在这个范围中增加或者减少节点,都会造成规则失效。所以,应该分成多个整理箱,我创建了两个,把网页顶上那个菜系区级挪到第二个整理箱


上图,尽量使用定位标志映射,尤其是每个整理箱的容器节点,是用来划范围的,尽量使用定位标志映射

有几个抓取内容,找不到合适的定位标志,先只是做内容映射,点击测试按钮,查看生成的“数据规则”,找到“环境”的数据规则,拷出来进行修改
  1. .//text()[contains(.,'环境')]
复制代码
要比你原先的xpath简单很多,因为给容器节点做了定位标志映射,那么自动生成的数据规则本来就短,要写成相对定位,就是开始 ./这样的格式,这是以容器节点为基点的。你写的那个xpath太长,很容易受到网页结构的影响。

最后,还有很重要的一点:我把这个规则分成了两个。



网页一开始没有显示更多信息的,需要模拟点击点开以后才能抓取。所以需要两个规则,一个点击前,一个点击后。你没有用两个,在这个网站上也是可以的,因为即使没有显示出来,其实已经加载上来了,但是,那样的话,给“更多信息”做定位标志映射的时候,class就不是'other J-other',而是点开前还有一个hidden




举报 使用道具
板凳
meicairen 高级会员 发表于 2017-1-6 01:51:21 | 只看该作者
Fuller 发表于 2017-1-5 23:13
上图,首先,样本页面上没有“人均消费”,所以整理箱中创建这个抓取内容会很影响抓取规则的适应性。如果 ...

太感谢了,受教了。但是我按照您的方法去改了,还是会有问题,您能直接帮我改下吗?

http://www.dianping.com/shop/1934668
http://www.dianping.com/shop/21829897
http://www.dianping.com/shop/8022978
http://www.dianping.com/shop/500792
http://www.dianping.com/shop/1903537
http://www.dianping.com/shop/4131721
http://www.dianping.com/shop/500643
http://www.dianping.com/shop/14684855
http://www.dianping.com/shop/3511339


你可以那这几条线索,测试下。
举报 使用道具
地板
Fuller 管理员 发表于 2017-1-6 09:07:18 | 只看该作者
meicairen 发表于 2017-1-6 01:51
太感谢了,受教了。但是我按照您的方法去改了,还是会有问题,您能直接帮我改下吗?

这个规则太复杂了,主要靠你自己修改,基本原则是:距离太远的内容分到多个整理箱中,尽量用上定位标志映射。

也可以委托GooSeeker官方定制规则
举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

精彩推荐

  • Gephi社会网络分析-马蜂窝游记文本分词并同
  • Gephi社会网络分析-基于马蜂窝游记文本以词
  • 知乎话题文本根据词语间距筛选后生成共词矩
  • 马蜂窝游记文本分词后以词语间距为筛选条件
  • 学习使用apriori算法挖掘关联关系

热门用户

GMT+8, 2024-4-25 01:12