本帖最后由 terry_cai 于 2018-8-24 09:59 编辑

你好!
       我在抓取数据时遇到这种情况!
       我用自定义XPath:
              *//*[@class='WB_face W_fl']/a/img/@usercard
       得到的结果是
               
      但是我想去到 id=,所以我加了函数在表达式,写成这样
             substring-after(*//*[@class='WB_face W_fl']/a/img/@usercard,'id=')
      得到的结果变成空
         
      请问我错在那里?



本帖子中包含更多资源

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

x
举报 使用道具
| 回复

共 2 个关于本帖的回复 最后回复于 2018-8-24 10:33

沙发
terry_cai 新手上路 发表于 2018-8-24 10:08:31 | 只看该作者
己解决,原来要写成
substring-after(.//*[@class='WB_face W_fl']/a/img/@usercard,'id=')
举报 使用道具
板凳
Fuller 管理员 发表于 2018-8-24 10:33:46 | 只看该作者
terry_cai 发表于 2018-8-24 10:08
己解决,原来要写成
substring-after(.//*[@class='WB_face W_fl']/a/img/@usercard,'id=')

是的,在自定义xpath中,不允许出现 *// 开头的xpath,这个好像就是在抓取规则中有效,抓取规则是XSLT语法。

另外,如果抓取多个样例,自定义xpath不能用 // 开头,或者 /html 开头,这样都是从整个网页范围内找节点,多个样例很可能就抓成一样的内容了。而是应该相对于整理箱的定位节点,写成 ./ 开头的xpath,这样的话,整理箱能抓到几个样例,那么里面的抓取内容就分别从这些样例内部定位到内容节点。
举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

精彩推荐

  • 360或火绒等杀毒软件导致GooSeeker爬虫软件
  • 话题分析(NMF模型和LDA模型)软件的安装和
  • 运行Apple无法验证的程序的方法
  • 文本聚类分析软件的安装和使用方法
  • 利用AI阅读和分析文本:扣子COZE记录用户反

热门用户

GMT+8, 2025-5-14 21:29