建立框架后,如何使用Xpath

抓取新浪微博的转发数和评论数时,如果此条微博设计到转发的,则本条微博的转发数抓不到,抓到的是被转发的微博的评论数。微博链接和被转发的微博链接抓到的也是同一条链接,通过什么方法可以解决,如果Xpath可以解决,请告诉一下步骤。新手,求指导!Theme Editor:超级本讨论链接提取。

XPath使用方法

用MetaStudio定义好抓取规则,点击MAP按钮,MetaStudio的下部窗口会自动显示抓取规则,察看这个规则,找到那个信息属性,比如“转发数”,会看到一行XSLT指令,比如,某个信息结构的信息属性summary

<summary>
<xsl:value-of select="*//*[@class='summary']"/>
</summary>

XPath就是*//*[@class='summary'],可以手工替换掉,新浪微博的转发数的XPath替换稍微需要一点XPath技巧,使用following-sibling或者preceding-sibling,选择前面一个或者后面一个DOM节点作为参考,就不会与被转发的转发数搞混了。

确定了自定义XPath表达式后,在MetaStudio的Bucket Editor工作台上,点击这个信息属性,弹出特性编辑窗口,选择block那个复选框,选择XPath过滤器,一般选择“文本内容”,也就是说只抓取文字,那么就使用XSLT的value-of指令,在“内容提取表达式”一栏输入这个自定义的XPath表达式。通常选择“兼做定位”,如果XPath表达式最外一层使用一些函数,比如substring-after之类,就不要选“兼做定位”。

最后,存储,即设置完毕