本帖最后由 skykate 于 2016-10-23 17:40 编辑

蚂蜂窝社区爬取用户足迹时,主题名为:user_information_Mafengwo-TS
网页结构出现两种情况,附网址:http://www.mafengwo.cn/path/5327755.html

一种情况是浏览地点已完善,另外一种情况是地点待完善;我想爬取城市数据,即图片上的文字;上述情况导致了两种不同的网页结构;
只做一种内容映射时,只能爬取到一种结构的数据;但依照MS谋数台生成的XPath语句,写成xxx|xxx的格式时,导致爬取结果全部为第一个样例的城市;



可能是我自定义的XPath语句有问题吗?我是根据MS谋数台自动生成的xpath进行书写的:

具体如下:


我写了两种,结果都是一样的://*[@class='_j_cityitem']/div[position()=2]/dl/dt/a/div[position()=2]/div[position()=2]/h3/span/text()|//*[@class='_j_cityitem']/div[position()=2]/dl/dt/a/div[position()=2]/p/text()
第二种://*[@class='txt']/h3/span[position()=1]/text()|//*[@class='vertical']/p/text()

是不是没有写兄弟节点的相关信息?






举报 使用道具
| 回复

共 8 个关于本帖的回复 最后回复于 2016-10-25 11:08

沙发
Fuller 管理员 发表于 2016-10-23 17:43:48 | 只看该作者
自定义xpath的时候,格式是有要求的,一般不要用//开头,这个表示是从html定点开始的定位,而是要求使用相对xpath,是相对于整理箱所在的网页块的那个html节点。所以,自定义xpath的过程是
1)先不要自定义xpath,做好数据映射,点击测试按钮,在输出窗口的“数据规则”页签看到生成的规则
2)根据生成的那个抓取内容的xpath,来构造自定义的xpath,xpath起点要跟生成的那个一样
举报 使用道具
板凳
Fuller 管理员 发表于 2016-10-23 17:56:26 | 只看该作者
  1. <city_name>
  2. <xsl:value-of select="div[position()=2]/dl/dt/a/div[position()=2]/div[position()=2]/h3/span[position()=1]/text()"/>
  3. </city_name>
复制代码
city_name的起点是div[position()=2],它的容器是
  1. <xsl:template match="div[position()>=2]" mode="tourist_city">
复制代码
再上级容器是
  1. <xsl:template name="tourist_country">
复制代码
顶层容器是
  1. <xsl:template match="//*[@class='banner' and count(./div[position()=3]/div/div/div[position()=2]/span[position()=1]/text())>0]" mode="user_travelSpot">
复制代码
有嵌套,这个点位节点要找出来就麻烦很多,可以用MS谋数台上的“搜索”按钮,先找到顶层容器的html节点,那么tourist_country的就很好找了。

这个规则里面太多position()函数了,适应性不高,最好用上定位标志映射。

另外,可以分成多个整理箱,把顶上的足迹统计部分放在一个整理箱。把具体的足迹放在另一个整理箱
举报 使用道具
地板
skykate 中级会员 发表于 2016-10-23 18:43:00 | 只看该作者
Fuller 发表于 2016-10-23 17:56
city_name的起点是div,它的容器是再上级容器是顶层容器是
有嵌套,这个点位节点要找出来就麻烦很多,可以 ...

谢谢大神,已基本解决
举报 使用道具
5#
skykate 中级会员 发表于 2016-10-23 18:59:43 | 只看该作者
Fuller 发表于 2016-10-23 17:56
city_name的起点是div,它的容器是再上级容器是顶层容器是
有嵌套,这个点位节点要找出来就麻烦很多,可以 ...

还想咨询您一下,DS打数机在采集数据时,为什么无论滚屏参数设置为几,都会滚到一个固定位置不再进行滚屏;数据采集的过程中只采集到了第一页的数据。而原采集的网页,只要滚屏到底部,就会继续加载。
举报 使用道具
6#
Fuller 管理员 发表于 2016-10-23 20:22:04 | 只看该作者
skykate 发表于 2016-10-23 18:59
还想咨询您一下,DS打数机在采集数据时,为什么无论滚屏参数设置为几,都会滚到一个固定位置不再进行滚屏 ...

你一定是设置了定时器触发,这个选项不要打开。

下周将发布8.0.2版本,会解决这个问题,定时器触发和滚屏将不再发生冲突
举报 使用道具
7#
skykate 中级会员 发表于 2016-10-24 11:35:33 | 只看该作者
Fuller 发表于 2016-10-23 20:22
你一定是设置了定时器触发,这个选项不要打开。

下周将发布8.0.2版本,会解决这个问题,定时器触发和滚 ...

我尝试了一下,还是只能抓到苏州,样本网页:http://www.mafengwo.cn/path/5327755.html
会不会是因为开始网页显示只到苏州,需要滚屏加载才能看到后续的内容,是不是这个原因呢?
举报 使用道具
8#
Fuller 管理员 发表于 2016-10-24 22:38:10 | 只看该作者


我测试看到苏州了,你把规则已经修改好?

8.0.2版本已经发布了,你重新下载安装一个最新版本吧。以前的版本,如果设置定时器触发,就会影响翻页。现在把这个问题修改了。即使设置了定时器触发,也能翻页到底
举报 使用道具
9#
skykate 中级会员 发表于 2016-10-25 11:08:02 | 只看该作者
Fuller 发表于 2016-10-24 22:38
我测试看到苏州了,你把规则已经修改好?

8.0.2版本已经发布了,你重新下载安装一个最新版本吧。以前的 ...

恩恩,上次您给的建议,我昨天自己修改了一下抓取规则,两种网页结构的内容都可以抓取下来了;现在还有一点小问题,我去下个新版本试一下,谢啦!!
举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

精彩推荐

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

热门用户

GMT+8, 2024-4-29 10:12