我正在尝试学习如何通过使用Google Sheets的ImportXML功能来对网站进行网络抓取。我很难拉出所有客户的姓名,行业和他们的相关链接。
例如:西班牙桑坦德银行,金融服务,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教程和示例,但大多数都是通过示例来实现的,这些示例的源代码是表格格式的。我的情况似乎有所不同,至少对我来说是这样。
任何指导,技巧,原始材料都将非常感谢。
发布于 2019-05-17 04:35:24
不幸的是,这是不可能的,因为该网站是由JavaScript控制的,而Google Sheets不能理解/导入JS。您可以简单地通过禁用给定链接的JS进行测试,您将看到一个空白页面:
这是你能刮到的所有东西:
=IMPORTXML("https://www.cloudera.com/about/customers.html", "//*")
https://stackoverflow.com/questions/56176036
复制相似问题