发新话题 回复该主题

Xpath定位教程及常见问题汇总帖 [复制链接]

1#

Xpath定位教程和常见问题汇总帖及发帖须知



一、Xpath相关教程


1、该版块针对采集过程中需要用到Xpath定位字段或标签来解决问题的八爪鱼用户


2、Xpath入门教程1:http://www.bazhuayu.com/tutorial/xpath1.aspx?t=0


3、Xpath入门教程2:http://www.bazhuayu.com/tutorial/xpath2.aspx?t=0


4、相对路径XPath教程:http://bbs.bazhuayu.com/showtopic.aspx?topicid=1526


5、Xpath工具使用教程:http://bbs.bazhuayu.com/showtopic.aspx?topicid=1531


6、XpathW3S教程:http://www.w3school.com.cn/xpath/index.asp


7、请先阅读下方“Xpath定位”常见问题汇总,如未找到合适的解决方法请发帖咨询



二、Xpath定位常见问题汇总


1、常见问题


     1.Xpath定位相关方法

       1)contains(@attribute/text(),'文本字段'),指包含

          例如:

          <a class='demo'>下一页</a>

          contains()方法应用举例:

          A.contains(text(),'下一页')

          B.contians(@class,'demo')

          以上两种方法均可定位到a标签


       2)starts-with(@attribute/text(),'文本字段'),指开头包含某些固定连续字段,具体事例参照contains()


       3)ends-with(@attribute/text(),'文本字段'),指结尾包含某些固定连续字段,具体示例参照contains()


       4)利用网页中某些固定出现的标签,通过sibling和回退找到该字段

          1)following-sibling::name

          2)preceding-sibling::name

          具体参照下面sibling相关方法的使用


     2.利用following-sibling和preceding-sibling定位标签

       有些标签我们无法直接定位,需要用到兄弟节点标签间接定位,例如:无"下一页"的网站翻页,我们可以通过页面1找到页面2,通过页面2找到页面3,...,以此类推

       示例如下:

       A[1]
       A[2]
       A[...]
       A[N]

       此时利用following-sibling的取A[2]值是://A[1]/following-sibling::a[1],这样就可以定位到A[2]标签了,其他以此类推

       preceding-sibling取A[1]值://A[2]/preceding-sibling::a[1],这样就可以定位到A[1]标签了,其他以此类推

    

     3.标签“下一页”定位到了,但是无法进行翻页

        1)是AJAX翻页,具体参照教程:AJAX简介AJAX翻页设置视频教程AJAX翻页图文教程AJAX加载实战教程

        2)下一页在JavaScript里面,点击不到


     4.如何去掉下拉框或者循环中无用标签

        1)循环下拉框中的无用项,例如:“请等待”、“请选择”

        2)不固定元素列表中的无用项,例如:广告项、筛选不同性质的class属性标签

        方法如下:

        A.position()>0 and position()<n,是指筛选1到(n-1)option标签
        B.Last()是指position()标签中的最后一个节点
        C.@attribute<n,是指对option中某个attribute值得范围进行筛选
        举例:
        OPTION[position()>1 and @value<=20000],筛选出除第一个option外,option属性值value<20000的OPTION标签集群        OPTION[@class='on' and last()<5],筛选出class属性值是on且为前4个的option标签    
  

     5.为什么我的Xpath自定义处没有相对Xpath路径供我选择

       相对Xpath的出现条件:必须是大循环列表内,存在于提取元素同为同胞标签的小可循环列表(具体参照:相对Xpath教程        

       如果没有,只能复制提取存在相对Xpath路径的“提取元素”进入自己规则,再改Xpath路径



2、问题帖汇总

...


更多问题将持续更新...


三、若以上内容仍未能解决问题,为了便于尽快解决问题,请按规定发帖提供此三项内容:采集网页URL、所要定位的标签示意截图、Xpath定位所碰到的问题和详情描述。


四、回帖者请尽可能的详细准确回复发帖者所咨询问题。如果回答标准、解释完整,帖子可申请加精,加精后将给予标准回复者100-1000积分奖励。在此,诚请各位用户积极交流,积极帮助大家解决问题!


五、积极解决大家问题,经常发优质经验帖的用户,官方将给予积分、勋章等奖励,等级达到六爪时可进入规则悬赏区接单,积分则可兑换八爪鱼优惠券和兑换券。详细奖励制度请参考积分规则帖(链接:http://bbs.bazhuayu.com/showtopic.aspx?topicid=2485)。


六、如不会采集,需定制规则请前往数多多平台提交需求或直接购买数据包。数多多:http://www.dataduoduo.com/Demand/c0/d0/u/010/f0/t0


七、水帖、发布广告及回复类似于“加我QQ”、“留个联系方式”等未帮用户解决实际问题的,我们会进行删帖操作,发现三次以上封号处理。


八、如果用户在规则悬赏区内遇到有偿规则无效、所采数据未达到要求,双方协商无果后,可进行投诉,请提供聊天记录、转账记录等,证据确凿者将做封号处理(声明:官方人员不进行接单定制规则,线下交易有风险,我们不担保任何交易)。
最后编辑海**情 最后编辑于 2017-03-14 11:32:12
本主题由 版主 海**情 于 2017/2/13 21:13:27 执行 设置高亮 操作
分享 转发
如果论坛发帖后未得到及时响应,请点击论坛帮助板块寻求解决方案:http://bbs.bazhuayu.com/showtopic.aspx?topicid=2934
TOP
发新话题 回复该主题