本帖最后由 mumian 于 2016-8-31 12:01 编辑

抓取目的:将软件列表中所有软件名称和链接抓取下来,要求名称和链接一一对应
样本页面https://itunes.apple.com/us/genre/ios-books/id6018?mt=8
主题:软件信息收集_Mac应用_第二级
情况介绍
样本页面
a d g
b e h
c  f  i
三列数据对应三个div,class分别为column first,column,column last。每个div中有对应的UL。

我的问题:现只能抓取到部分数据,第一列数据或第一行数据,怎么全部抓取下来?
尝试1:只得到第一列数据

尝试2:只得到第一行数据

举报 使用道具
| 回复

共 3 个关于本帖的回复 最后回复于 2016-8-31 12:09

沙发
mumian 初级会员 发表于 2016-8-31 11:46:35 | 只看该作者
本帖最后由 mumian 于 2016-8-31 12:10 编辑

尝试了选择'column first'中两个li做样例复制,得到的只是第一列数据。
选择class为'column first'和'column'的两个div做样例复制,得到的只是第一行数据:
<list>
<xsl:apply-templates select="//*[@class='grid3-column']/div[position()>=1 and count(./ul/li[position()=1]/a/text())>0 and count(./ul/li[position()=1]/a/@href)>0]" mode="list"/>
</list>
</xsl:template>
<xsl:template match="//*[@class='grid3-column']/div[position()>=1 and count(./ul/li[position()=1]/a/text())>0 and count(./ul/li[position()=1]/a/@href)>0]" mode="list">
<item>
<软件名称>
<xsl:value-of select="ul/li[position()=1]/a/text()"/>
</软件名称>
<软件网址>
<xsl:value-of select="ul/li[position()=1]/a/@href"/>
</软件网址>

我非常怀疑是这个ul/li[position()=1]出了问题,但是怎么改‘>=1’呢?


举报 使用道具
板凳
Fuller 管理员 发表于 2016-8-31 11:56:45 | 只看该作者

使用嵌套整理箱,如上图,内部那层做行样例复制,外部那层做列样例复制
举报 使用道具
地板
mumian 初级会员 发表于 2016-8-31 12:09:06 | 只看该作者
Fuller 发表于 2016-8-31 11:56
使用嵌套整理箱,如上图,内部那层做行样例复制,外部那层做列样例复制
...

完美解决!抱拳~抱拳~抱拳~
举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

精彩推荐

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

热门用户

GMT+8, 2024-5-7 00:26