一级规则:点击More第一级
二级规则:点击More第二级
我用xpath定位到了发起人过去总筹资额,为什么抓取时会出现上图的错误呢

本帖子中包含更多资源

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

x
举报 使用道具
| 回复

共 5 个关于本帖的回复 最后回复于 2018-8-11 17:08

沙发
Fuller 管理员 发表于 2018-8-10 18:12:39 | 只看该作者
发起人过去总筹资额,是不是自定义的xpath?我估计问题出在:[position()=2]这个上面,你是想把定义到的好几个节点中的第二个拿出来用,可以在这个上下文环境中不运行这样写。

自定义xpath的写法是有限制的:相对于整个整理箱对应的网页块节点,写相对的xpath,写成 // 开头的就是全局的xpath了,不是相对于整理箱的。

要在第几级自定义xpath?

这里有一组教程,其中第一个教程就是说怎样相对于整理箱节点写相对的xpath:https://www.gooseeker.com/doc/thread-701-1-1.html
举报 使用道具
板凳
DuoRuaiMi 高级会员 发表于 2018-8-11 11:59:05 | 只看该作者
Fuller 发表于 2018-8-10 18:12
发起人过去总筹资额,是不是自定义的xpath?我估计问题出在:这个上面,你是想把定义到的好几个节点中的第 ...

可是如果不能用position()=2,怎么定位到筹款额呢,求指教
举报 使用道具
地板
Fuller 管理员 发表于 2018-8-11 12:32:07 | 只看该作者
DuoRuaiMi 发表于 2018-8-11 11:59
可是如果不能用position()=2,怎么定位到筹款额呢,求指教

这是哪级规则?我加载上来看看
举报 使用道具
5#
DuoRuaiMi 高级会员 发表于 2018-8-11 14:33:02 | 只看该作者
Fuller 发表于 2018-8-11 12:32
这是哪级规则?我加载上来看看

二级规则,点击鼠标定位一直抓取到的不是筹款额,是前面的发起数1
举报 使用道具
6#
Fuller 管理员 发表于 2018-8-11 17:08:01 | 只看该作者
DuoRuaiMi 发表于 2018-8-11 14:33
二级规则,点击鼠标定位一直抓取到的不是筹款额,是前面的发起数1

自定义xpath的写法有问题,不能用 //开头,而是用 .//开头,相对于容器节点的xpath写抓取内容的xpath

为了得到容器节点的xpath,首先不要自定义xpath,生成规则,


可见,容器节点的xpath是
  1. "//*[@class='ng-isolate-scope' and count(.//*[@class='campaignOwnerProfile-name ng-binding'])>0 and count(.//*[@class='itemValue ng-binding'])>0 and count(.//*[@class='itemValue ng-binding'])>0]
复制代码
定位到了一个名字很长的DOM节点上,接着观察要写自定义xpath的那个节点

而且能看到跟前一个抓取内容的xpath一模一样,因为他们有相同的class值,把这个xpath拷贝出来
  1. *//*[@class='itemValue ng-binding']
复制代码


观察一下,两个内容抓取一样的了,他们有共同的父节点

为这个父节点生成xpath,搜索测试一下,只搜到一个,所以,可以先定位到他们的共同父节点,然后在用positon()区分开第几个

用.//开头,先定位到父节点,然后用div[2]走到第二个分支上,接着就是拷贝过来的xpath了,编辑一下,变成
  1. .//*[@class='campaignOwnerDetails-impact-list']/div[2]/*[@class='itemValue ng-binding']
复制代码


用这个xpath作为自定义xpath,就可以了




本帖子中包含更多资源

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

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

精彩推荐

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

热门用户

GMT+8, 2024-12-27 00:15