本帖最后由 shyc126 于 2017-3-14 21:34 编辑

http://www.tianyancha.com/search?key=%E4%BF%A1%E6%81%AF
这个页面我做了一个规则,第一页查询结果可以正确解析,但第二页解析不了,手工对两个页面分别做了一个规则,比较了一下,发现在最顶端容器有如下区别
<xsl:template match="/">
<li>
<xsl:apply-templates select="//*[@id='ng-view']/div[position()=2]/div/div/div[position()=1]/div[position()=4]/div[position()>=1 and count(.//*[@class='ng-binding'])>0 and count(.//*[@class='query_name search-new-color']/@href)>0]" mode="li"/>
</li>
</xsl:template>

<xsl:template match="/">
<li>
<xsl:apply-templates select="//*[@id='ng-view']/div[position()=2]/div/div/div[position()=1]/div[position()=3]/div[position()>=1 and count(.//*[@class='ng-binding'])>0]" mode="li"/>
</li>
</xsl:template>

在页面上则体现为多了这一个div
有什么办法可以解决这个问题?

举报 使用道具
| 回复

共 11 个关于本帖的回复 最后回复于 2017-5-4 08:38

沙发
Fuller 管理员 发表于 2017-3-14 21:49:32 | 只看该作者
有position()函数就不太好,如果用上定位标志映射就能消除position()函数,尤其顶层容器,用定位标志映射很容易消除position。有时候,为了利用定位标志,可能故意做成一个嵌套整理箱,就是在顶层容器节点下再建一个容器节点,用定位标志专门限定一下顶层容器的定位。《定位标志精确采集范围——以安居客租房采集为例》最后面就讲了这个用法
举报 使用道具
板凳
shyc126 中级会员 发表于 2017-3-14 22:28:11 | 只看该作者
Fuller 发表于 2017-3-14 21:49
有position()函数就不太好,如果用上定位标志映射就能消除position()函数,尤其顶层容器,用定位标志映射 ...

这两个xsl是自动生成的,并不是我自己写的
我整理箱上写了一个xpath *//*[@ng-if='!isTypeSearch']
但是看数据规则还是这样
只能抓第一页 第二页抓不了
你能看见我做的规则吗 名字是tyc_search_result2

举报 使用道具
地板
shenzhenwan10 金牌会员 发表于 2017-3-14 22:56:04 | 只看该作者
如果要修改自动生成的"数据规则", 必须按正确的顺序:
1. 测试,并保存规则
2. 修改数据规则
3. "测试单箱"或"测试所有", 然后"保存修改"
修改后的数据规则对于DS打数机抓取是有效的
但是你下次加载保存规则, 需要重新修改
举报 使用道具
5#
shyc126 中级会员 发表于 2017-3-14 23:03:10 | 只看该作者
shenzhenwan10 发表于 2017-3-14 22:56
如果要修改自动生成的"数据规则", 必须按正确的顺序:
1. 测试,并保存规则
2. 修改数据规则

这个方法我也试过,同样还是只能抓第一页的内容,就是看不出问题出在哪儿,你能帮我改下我的规则tyc_search_result2吗
举报 使用道具
6#
Fuller 管理员 发表于 2017-3-14 23:11:01 | 只看该作者
shyc126 发表于 2017-3-14 23:03
这个方法我也试过,同样还是只能抓第一页的内容,就是看不出问题出在哪儿,你能帮我改下我的规则tyc_sear ...

按照我说的做定位标志映射
举报 使用道具
7#
shyc126 中级会员 发表于 2017-3-14 23:41:37 | 只看该作者
Fuller 发表于 2017-3-14 23:11
按照我说的做定位标志映射

这个也试过

红颜色的能定位
紫颜色的都不能定位

翻到第二页还是不能成功解析

举报 使用道具
8#
Fuller 管理员 发表于 2017-3-15 09:12:42 | 只看该作者
shyc126 发表于 2017-3-14 23:41
这个也试过

红颜色的能定位

紫色的是否有合适的定位标志可以映射?
最顶层那个li也要做定位标志映射。做一个嵌套整理箱
举报 使用道具
9#
HJLing 版主 发表于 2017-3-15 09:42:29 | 只看该作者

要做嵌套整理箱
先给整理箱做个定位标志映射框定采集范围
再在下面的list节点做样例复制(或者做定位标志映射 这里我做的定位标志映射 一样起到样例复制的作用)

举报 使用道具
10#
shyc126 中级会员 发表于 2017-3-15 16:20:33 | 只看该作者
Fuller 发表于 2017-3-15 09:12
紫色的是否有合适的定位标志可以映射?
最顶层那个li也要做定位标志映射。做一个嵌套整理箱
...

感谢!终于搞好了!
举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

精彩推荐

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

热门用户

GMT+8, 2024-4-25 18:02