IMPORTHTML错误将数据拉到表格式之外

时间:2019-05-16 20:19:32

标签: google-sheets google-sheets-formula google-sheets-query google-sheets-importxml

我正在尝试学习如何通过使用Google Sheets的ImportXML函数来对抓取网站进行网络化。我很难提取所有客户(188)的名称,行业及其相关链接。

例如: 西班牙桑坦德银行,金融服务,https://www.cloudera.com/about/customers/banco-santander-spain.html

我正在尝试使用的网页是this website

我只能吸引几个客户,我不确定为什么以及我做错了什么。

检查来源(在西班牙桑坦德银行的瓷砖上):

<div class="col-md-3 col-sm-6">
<div class="damSearchGrid-item damSearchGrid-slide">
<a href="#" class="dam-dropdown">
<span class="damSearchGrid-img">
<imgsrc="/content/dam/www/dynamic/images/logos/customers/santander-spain-dynamic.png/_jcr_content/renditions/xcq5dam.thumbnail.140.100.png.pagespeed.ic.y7RN8qmYUY.webp" alt="Banco Santander Spain logo" data-pagespeed-url-hash="3896535651" onload="pagespeed.CriticalImages.checkImageForCriticality(this);"></span>
<span class="damSearchGrid-cat"> Financial Services</span>
<strong class="damSearchGrid-name"> Banco Santander Spain</strong>
</a>
</div>
<div class="damSearchGrid-itemDetail clearfix">
<a href="#" class="close">x</a>
<div class="col-sm-9">
<h3>Banco Santander Spain</h3>
<p>Banco Santander is using a big data architecture for a consistent view of data, on-demand data clusters, and faster time to market.</p>
</div>
<div class="col-sm-3">
<a href="https://www.cloudera.com/about/customers/banco-santander-spain.html"> SUCCESS STORY </a><br>
</div>
</div>
</div>
</b>

所以我尝试了一些事情:

首先,我尝试了以下公式:

=IMPORTXML("https://www.cloudera.com/about/customers.html","//li")

我只能提取大约120个客户名称以及其他不相关的数据。

然后我尝试了:

=IMPORTXML("https://www.cloudera.com/about/customers.html","//h3")

只返回了大约15个名字的简短列表。

我试图做其他类似下面的公式,但是它们以#N / A错误结束。

例如:

=IMPORTXML("https://www.cloudera.com/about/customers.html","//span[@class='col-md col-sm-6']")

我是一个初学者,我不知道该如何寻找正确的查询以及如何确定问题的根源。我搜索了IMPORTXML教程和示例,但是其中大多数都是通过示例(其中源采用表格格式)运行的。至少对我来说,我的情况似乎有所不同。

任何指导,技巧和原始资料将不胜感激。

1 个答案:

答案 0 :(得分:0)

不幸的是,这是不可能的,因为该网站由JavaScript控制,并且Google表格无法理解/导入JS。您可以通过禁用给定链接的JS进行测试,您会看到一个空白页:

0

这是您可以抓取的所有内容:

=IMPORTXML("https://www.cloudera.com/about/customers.html", "//*")