样本网址如下:
  1. https://www.amazon.com/gp/bestsellers/kitchen/760358/ref=pd_zg_hrsr_k_1_3_last
复制代码
这个页面的页码如下图所示:

我试过用相对线索了,但是只能爬取两页的信息。
相对线索生成的规则如下图所示:


举报 使用道具
| 回复

共 3 个关于本帖的回复 最后回复于 2017-1-22 10:46

沙发
xandy 论坛元老 发表于 2017-1-22 10:32:07 | 只看该作者
本帖最后由 xandy 于 2017-1-22 10:37 编辑

可以看到,用相对线索生成的规则适应性差,li节点的id都是不一样的,而相对线索的规则里限定了路径第一个是@id='zg_page1',第2个是@id='zg_page2',所以这样的结果只能翻一次页面。这个页面的翻页有两种方法,方法一是用相对线索,方法二是生成下级线索来抓。

法一:
手工修改相对线索规则,要修改两处地方



1,定义好规则,点击MS谋数台窗口右上角的“存规则”按钮,然后再手工修改
2,第1张图红框里的规则,改成
  1. //*[@class='zg_pagination']/li[count(./a)>0 and count(following-sibling::li[position()=1]/a)>0 and @class='zg_page zg_selected']
复制代码
3,第2张图红框里的规则,删掉and后面的部分
4,点击线索规则框右侧的“保存修改”按钮(注意,都这一步就行了,不要再点击MS谋数台窗口右上角的“存规则”按钮了,不然会把刚刚修改的规则重新覆盖成原来生成的规则)
举报 使用道具
板凳
xandy 论坛元老 发表于 2017-1-22 10:44:27 | 只看该作者
法二:
抓页面的独立页码
翻几次页面后,就可以发现,每翻一次页面都是都独立页码的,比如,第一页的网址如下:
  1. https://www.amazon.com/gp/bestsellers/kitchen/760358/ref=pd_zg_hrsr_k_1_3_last#1
复制代码
第二页的网址如下:
  1. https://www.amazon.com/gp/bestsellers/kitchen/760358/ref=pd_zg_hrsr_k_1_3_last#2
复制代码
所以你可以先建立一个规则,抓取每个页面的独立网址,然后构造下级线索,下级的主题名不变,都指向具体的数据抓取规则


举报 使用道具
地板
Fuller 管理员 发表于 2017-1-22 10:46:08 | 只看该作者
相对线索处理这种情况不够完善,这个问题已经提交给研发,下个版本就会把相对线索自动生成算法提高了,不用手工修改规则了
举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

精彩推荐

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

热门用户

GMT+8, 2024-5-3 06:39