经常遇到“抓取数据连续性规则不合适或超时间设置太短”这样的提示,到底有哪些方法可以提高规则的适应性?

举报 使用道具
| 回复

共 2 个关于本帖的回复 最后回复于 2016-11-15 11:41

沙发
Fuller 管理员 发表于 2016-11-15 11:16:31 | 只看该作者
集搜客网络爬虫的最好用的是“直观标注”,但是自动生成的数据采集规则不一定最合适。比如,如果一个抓取内容的采集规则如下:
  1. <xsl:template match="//*[@class='detail' and count(././ul/li[position()=10]/span)>0]" mode="采集">
  2.     <item>
  3.         <款号>
  4.             <xsl:value-of select="./ul/li[position()=10]/span"/>
  5.         </款号>
  6.     </item>
  7. </xsl:template>
复制代码


里面出现了position()=10  ,很影响适应性,要避免出现这种表达式,因为他是从确定位置上采集数据,网页所在的位置变成了 position()=9  就采集不到了。避免的方法是给这个抓取内容做定位标志映射

也有很多网站,网页上没有@class, @id这样可用的定位标志,那么就得想别的办法,比如,用自定义XPath。下面是样本页面的截图


没有好的定位标志,只能用“商品编号”这个文本内容作为定位参照点,比如,写成
  1. ./ul/li[contains(em/text(),'商品编号')]/span
复制代码
用文本内容标志弥补缺少DOM标志的缺陷

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
举报 使用道具
板凳
Fuller 管理员 发表于 2016-11-15 11:41:56 | 只看该作者
像楼上说的一样,在“爬虫路线”工作台上也同样需要注意规则的适应性,比如,翻页规则的适应性,适应性不高可能就翻不了页。



上图,左下红框中是生成的翻页规则,没有绝对定位的position()函数,适应性比较好。如果看到适应性不好的规则,可以点击“定位选项”,调整自动选择的@class或者@id。如果这种调整还不行,那么可以直接编辑修改翻页规则,修改以后点击“保存修改”按钮。


千万要记住
1)保存修改要在“存规则”之后
2)下次“存规则”,会把手工编辑的内容冲掉

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

精彩推荐

  • 运行Apple无法验证的程序的方法
  • 文本聚类分析软件的安装和使用方法
  • 利用AI阅读和分析文本:扣子COZE记录用户反
  • 在网页片段内直观标注——以B站评论采集为
  • 利用AI阅读和分析文本:使用COZE建设游记文

热门用户

GMT+8, 2024-12-23 10:57