【问题标题】:Trouble retrieving numbers using IMPORTXML使用 IMPORTXML 检索号码时遇到问题
【发布时间】:2022-01-18 00:50:13
【问题描述】:

有谁知道如何从page 的列表中获取网络数量(每个单元格中一次一个)?经过反复试验,我认为=IMPORTXML("https://www.peeringdb.com/fac/167","//div[@data-filter-value='BGP.Exchange' and @'participants']") 应该是最“正确的”,但公式​​不起作用......我做错了什么?提前感谢您的帮助。

【问题讨论】:

    标签: xml google-sheets xpath xml-parsing google-sheets-formula


    【解决方案1】:

    试试

    =importxml($A$1,"//div[@data-filter-value='"&trim(A2)&"']/../..//div[@class='participants']")
    

    另一种解决方案

    =arrayformula(vlookup(trim(A2),trim(importxml(A1,"//div[@class='scrollable']//div")),3,0))
    

    【讨论】:

    • 好的,但我认为您可以一次获取所有值,我已经更新了我的建议。
    • 好的,解决方法可以是=importxml($A$1,"//div[@data-filter-value='"&A2&"']/../..//div[@class='participants']") : 当你处于同一级别时,使用 /.. 更上一层楼
    • 我已经改变了答案。
    • 检查文章前后是否有多余空间,将A2改为trim(A2)。但是,为什么不试试=arrayformula(vlookup(trim(A2),trim(importxml(A1,"//div[@class='scrollable']//div")),3,0)) 呢?
    【解决方案2】:

    尝试:

    =QUERY(IMPORTXML(A1, "//div[@class='scrollable']/div"), 
     "select Col3 where Col3 is not null")
    

    【讨论】:

    • 对不起 player0,我应该澄清一下:如果我每次只需要一个数字在每个单元格中怎么办? i.imgur.com/2NTneRN.png 。因此需要 //div[@data-filter-value='BGP.Exchange
    • 嗨 player0,有没有办法让公式包含 //div[@data-filter-value='BGP.Exchange'?如果你去另一个设施,IX 要么改变顺序,要么完全不同。这就是为什么我要单独获取每个IX的网络数量。例如,此公式 =INDEX(IMPORTXML(A1, "//div[@class='scrollable']/div"), 2, 3) 不会在其他设施中获取 BGP.Exchange 编号。跨度>
    • @stack91 不太好。它们处于同一层次,例如。它们之间没有直接联系。他们共享的唯一共同元素是<div class="row item" 只有当值 25(参与者元素)在 BGP.exchange(交换元素)下时,您想要完成的事情才有可能看到结构:i.stack.imgur.com/5UJSr.png 你只能做 OR 逻辑,如这个:=IMPORTXML("https://www.peeringdb.com/fac/167", "//div[@data-filter-value='BGP.Exchange'] | //div[@class='participants']") 但正如你所看到的,这也对你没有帮助
    • @player0 - 在这种情况下,您可以通过/../ .. 高出 2 步然后检查参与者的数量
    猜你喜欢
    • 1970-01-01
    • 2015-04-05
    • 1970-01-01
    • 2019-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多