spiderman的几个小问题

我喜欢下雨 发布于 2013/09/24 14:37
阅读 293
收藏 0

1、请问我模仿chealth这个xml文件设置了一个分页网站的下载,但是该下载到了最后一页不结束而是一直在将next_page_num+1进行搜索,请问这种情况下是怎么结束搜索?

        <parser xpath="//input[@id='jquery_current_page']" attribute="value" />
        <parser exp="$Util.toInt($this)+1" />

2、请问在表达式  xpath 和  exp 中除了java的string函数外还可以使用那些函数,在xpath中我使用逻辑关系and出了问题,比如

xpath="//input[@id='jquery_current_page' and text()<'13' ]" ,是不是不支持and

3、请问框架式浏览的网页,怎么使系统找到正确的下载地址,有时候需要点击几个按钮才能打开需要下载子页面,但浏览器中的地址是没有改变的,这种情况spiderman能处理吗?

加载中
0
自风
自风

1.只要访问的页面url无法获取next_page_num就会停止

2.要想支持xpath更高级的功能,请设置<target isForceUseXmlParser="1"。此外,这个exp是用#FEL#引擎解析的,FEL支持什么,这个exp就能支持什么。另外,$Util这个类对应的是 org.eweb4j.util.CommonUtil

3.iframe这种spiderman暂时不能处理,需要人工知道iframe的地址再来配置

0
我喜欢下雨

谢谢自风的解答,很有帮助。另外我发现我的下载不结束的原因了,我下载的页面当页码超出范围后还是可以生成页面,还可以获得next_page_num,只是没有数据显示而已,所以采用原设置系统不会停止下载,我加了个最大页面就可以了

<field name="max_num"  isParam="1">

<parsers>

 <parser  xpath="//a[@id='pageTotalInfo']//text()" />

<parser exp="$this.substring($this.indexOf(',')+1,$this.indexOf('页'))"   />

<parser exp="$Util.toInt($this)" />

</parsers>

</field>

<field name="next_page_num" isParam="1">
      <parsers>
       <parser xpath="//span[@id='curPageNo']//text()"  />
        <parser exp="$('Math').min(($Util.toInt($this)+1),($fields.max_num))" />
         </parsers>
   </field>


返回顶部
顶部