使用 IMPORTXML 检索号码时遇到问题
Posted
技术标签:
【中文标题】使用 IMPORTXML 检索号码时遇到问题【英文标题】:Trouble retrieving numbers using IMPORTXML 【发布时间】:2022-01-18 00:50:13 【问题描述】:有谁知道如何从page 的列表中获取网络数量(每个单元格中一次一个)?经过反复试验,我认为=IMPORTXML("https://www.peeringdb.com/fac/167","//div[@data-filter-value='BGP.Exchange' and @'participants']")
应该是最“正确的”,但公式不起作用......我做错了什么?提前感谢您的帮助。
【问题讨论】:
【参考方案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))
呢?
很高兴出售它! webapps.stackexchange.com/help/someone-answers【参考方案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 @stack91 见:docs.google.com/spreadsheets/d/… 嗨 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 步然后检查参与者的数量以上是关于使用 IMPORTXML 检索号码时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章
在更新使用 Mongoose 模型检索并作为承诺处理的文档时遇到问题
使用快速添加的 .Value/.Child 从 Firebase 检索数据时遇到问题
使用 ShouldOverrideUrlLoading 从 Xamarin.Forms Android webview 检索标头时遇到问题,始终(空)
使用 Alamofire 检索图像时遇到问题,有些图像加载,有些则没有 (SWIFT)
使用 PHP for 和 foreach 循环从 JSON 数据中检索视频信息时遇到问题 - YouTube API 3