1

我正在尝试学习如何通过使用 Google 表格的 ImportXML 功能来抓取网站。我很难提取所有客户的 (188) 名称、行业及其相关链接。

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

我正在尝试的网页是这个网站

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

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

<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 教程和示例,但其中大多数都通过源为表格格式的示例运行。我的情况似乎有所不同,至少对我来说是这样。

任何指导、提示、源材料将不胜感激。

4

1 回答 1

0

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

0

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

=IMPORTXML("https://www.cloudera.com/about/customers.html", "//*")
于 2019-05-16T20:35:24.200 回答