google-apps-script - 如何在 googlesheet 中使用 xmlimport 函数从具有相同类名的 DIV 中获取不同的值?
问题描述
这是我试图从其中抓取值的网页上的 HTML 代码:
<div class="parentclass">
<div class="subclass">
<a class="subclass1" href="https://www.google.com">
<span class="_getvalclass">This is a sample text</span>
</a>
</div>
<div class="subclass1">
<div class="_getvalclass">2:30</div>
</div>
<div class="subclass1">
<div class="_getvalclass">105</div>
</div>
</div>
我在谷歌表中使用这个功能
=SUBSTITUTE(CLEAN(IMPORTXML("http://www.pagename.com", "//div[@class='_getvalclass']")),",",",")
我得到这个值:
2:30
现在我有两个具有相同类名“_getvalclass”的 div,有什么方法可以定位每个 div 并获取单独的值?像使用索引定位 div:_getvalclass[0], _getvalclass[1]
还是有其他方法?
第 -2 部分问题(下面的 HTML):
<div class="o39aH">
<div class="_3sle8">
<a class="T3XY3" href="/some-page">
<span class="_2KIv8">Test</span>
<span class="_2UUUp">Unique text only in some page (some page it is missing)</span>
</a>
</div>
<div class="T3XY3">
<div class="_2KIv8">2:30</div>
<div class="_2UUUp">Time</div>
</div>
<div class="T3XY3">
<div class="_2KIv8">100</div>
<div class="_2UUUp">Pounds</div>
</div>
<button class="T3XY3">
<div class="_2KIv8">some text</div>
<div class="_2UUUp">Favorite</div>
</button>
<button class="T3XY3">
<div class="_2KIv8">Other text</div>
<div class="_2UUUp">Playlist</div>
</button>
</div>
在某些情况下,我想提取这些值
<div class="_2KIv8">2:30</div>
<div class="_2UUUp">Time</div>
在其他情况下,我想提取这些值
<div class="_2KIv8">100</div>
<div class="_2UUUp">Pounds</div>
解决方案
这个答案怎么样?请认为这只是几个答案之一。
问题 1 的答案:
如果要2:30
使用索引为“div”的xpath 进行检索,那么下面的xpath 怎么样?
示例 xpath:
//div[@class='parentclass']/div[2]
或者
//div[@class='parentclass']/div[2]/div[@class='_getvalclass']/text()
示例公式:
=IMPORTXML(A1,"//div[@class='parentclass']/div[2]")
- 在这种情况下,
http://www.pagename.com
被放在单元格“A1”中。
笔记:
- 您可以在此处测试 xpath 。
- 我不确定您的实际网址。所以我不确定上面的xpath是否可以直接用于你的情况。因为我不确定您问题中的 HTML 内容是否可以通过
IMPORTXML
.
如果这不是你想要的方向,我很抱歉。
问题 2 的答案:
示例 xpath:
模式一://div[@class='o39aH']/div[2]
和
//div[@class='T3XY3'][1]
和
//div[@class='o39aH']/div[@class='T3XY3'][1]
模式二:
//div[@class='o39aH']/div[3]
和
//div[@class='T3XY3'][2]
和
//div[@class='o39aH']/div[@class='T3XY3'][2]
示例公式:
请将 URL 放入单元格“A1”。
模式一:=IMPORTXML(A1,"//div[@class='o39aH']/div[2]")
- 在这种情况下,
2:30
和Time
被检索。
=IMPORTXML(A1,"//div[@class='o39aH']/div[3]")
- 在这种情况下,
100
和Pounds
被检索。
笔记:
- 您可以在此处测试 xpath 。
- 如果要检索
Test
andUnique text only in some page (some page it is missing)
,可以使用//div[@class='o39aH']/div[@class='_3sle8']/a[@class='T3XY3']
.
推荐阅读
- opencv - 从 Windows 中的命令行打开 OpenCV
- python - Jinjna2 如何根据字符串中的值设置字符串样式
- ruby-on-rails - 使用带有 JSON API 而不是 ActiveRecord 模型的 ActiveAdmin
- angular - 我应该使用什么实用程序来建立到 z/OS 大型机的 ftp 连接并将文件传输到 angular webapp 内的本地计算机?
- android - 向 AOSP 中的框架/支持添加新的支持库
- python - 如何在按钮按下时更新屏幕?
- python - NameError:未定义名称“classroom_list”
- angular - 如何用玩笑模拟组件中使用的“嵌套”角度服务
- html - 仅使用 CSS(无 JS)将相对定位的 div 内的元素与溢出自动重叠
- node.js - 是否可以在 RTMP 协议中为每个数据包插入额外的数据?