集搜客GooSeeker网络爬虫

标题: 怎么抓取一个页面中的前20条信息,不要全部的 [打印本页]

作者: summous    时间: 2016-5-26 15:30
标题: 怎么抓取一个页面中的前20条信息,不要全部的
一个网页上有1000条结构相同的信息,但是我只要爬前20条就可以了。用了样例复制以后要怎么设置来实现呢。。
作者: summous    时间: 2016-5-26 15:32
别告诉我爬完1000条以后再删去后面980条。。。
作者: ym    时间: 2016-5-26 15:41
采集只能按网页/翻页采集,你可以控制采集多少个网址或者翻页多少,所以,像这种同个网页上的样例复制采集是不能精确只采前几条数据。但是,你可以不做样例复制,而是对前20条数据分别建抓取内容进行映射,就能只抓网页上的前20条数据
作者: Fuller    时间: 2016-5-26 15:52
summous 发表于 2016-5-26 15:32
别告诉我爬完1000条以后再删去后面980条。。。

我建议你爬下来再删除,如果你确实不想这么做,你可以手工修改抓取规则。
[attach]894[/attach]

假设已经存了规则,那么再次点击工作台上的测试按钮,然后点击红框里面的“数据规则”标签,直接手工修改规则,要掌握xslt才行,可以限定只要前20个。修改完成后,点击“保存修改"。


注意,手工修改后只能点击“保存修改”,不能点击工具条上的“存规则”,否则手工修改的就冲掉了


作者: summous    时间: 2016-5-26 16:33
Fuller 发表于 2016-5-26 15:52
我建议你爬下来再删除,如果你确实不想这么做,你可以手工修改抓取规则。
假设已经存了规则,那么再次点 ...

谢谢,
下面是我的数据规则,你能帮我看下怎么设置吗,我只要前面5条。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:template match="/">
<花瓣第一级>
<xsl:apply-templates select="//*[@id='waterfall']/div[position()>=1 and count(.//*[@class='BoardUserUrl x']/text())>0 and count(.//*[@class='over ']/h3/text())>0 and count(.//*[@class='link  x']/@href)>0]" mode="花瓣第一级"/>
</花瓣第一级>
</xsl:template>



<xsl:template match="//*[@id='waterfall']/div[position()>=1 and count(.//*[@class='BoardUserUrl x']/text())>0 and count(.//*[@class='over ']/h3/text())>0 and count(.//*[@class='link  x']/@href)>0]" mode="花瓣第一级">
<item>
<用户昵称>
<xsl:value-of select="*//*[@class='BoardUserUrl x']/text()"/>
<xsl:value-of select="*[@class='BoardUserUrl x']/text()"/>
<xsl:if test="@class='BoardUserUrl x'">
<xsl:value-of select="text()"/>
</xsl:if>
</用户昵称>
<画板名称>
<xsl:value-of select="*//*[@class='over ']/h3/text()"/>
<xsl:value-of select="*[@class='over ']/h3/text()"/>
<xsl:if test="@class='over '">
<xsl:value-of select="h3/text()"/>
</xsl:if>
</画板名称>
<该画板采集数量>
<xsl:value-of select="*//*[@class='pin-count']/text()"/>
<xsl:value-of select="*[@class='pin-count']/text()"/>
<xsl:if test="@class='pin-count'">
<xsl:value-of select="text()"/>
</xsl:if>
</该画板采集数量>
<下级线索地址>
<xsl:value-of select="*//*[@class='link  x']/@href"/>
<xsl:value-of select="*[@class='link  x']/@href"/>
<xsl:if test="@class='link  x'">
<xsl:value-of select="@href"/>
</xsl:if>
</下级线索地址>
</item>
</xsl:template>
</xsl:stylesheet>
作者: summous    时间: 2016-5-26 16:34
ym 发表于 2016-5-26 15:41
采集只能按网页/翻页采集,你可以控制采集多少个网址或者翻页多少,所以,像这种同个网页上的样例复制采集 ...

恩,好的,是个可行的办法!谢谢啦
作者: Fuller    时间: 2016-5-26 17:25
summous 发表于 2016-5-26 16:33
谢谢,
下面是我的数据规则,你能帮我看下怎么设置吗,我只要前面5条。

抓取规则中有两个位置出现了
  1. /div[position()>=1 and count(.//*[@class='BoardUserUrl
复制代码
表示抓取从第一个开始的所有实例,把他们都改成
  1. /div[position()>=1 and position()<=20 and count(.//*[@class='BoardUserUrl
复制代码
就变成了只抓取1-20个实例

作者: summous    时间: 2016-5-26 17:39
Fuller 发表于 2016-5-26 17:25
抓取规则中有两个位置出现了
表示抓取从第一个开始的所有实例,把他们都改成
就变成了只抓取1-20个实例

十分感谢~




欢迎光临 集搜客GooSeeker网络爬虫 (https://www.gooseeker.com/doc/) Powered by Discuz! X3.2