如何在 Google 工作表中使用 xpath 使用 IMPORTXML(具有名称空间)导入数据?

How to import data with IMPORTXML (have namespaces) using xpath in Google sheets?

我正在尝试在 google sheet 上使用 IMPORTXML 在 https://travel.rakuten.co.jp/HOTEL/40130/review.html 上获取每个类别的评论,例如食品/服务,但我被卡住了。在线阅读我意识到这个网页在 html.

上有 NAMESPACES
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja" dir="ltr" xmlns:og="http://ogp.me/ns#" >

具体栏目是

<dd>
<ul>
<li><span class="name">サービス</span><span class="rate rate35">3.43</span></li>
<li><span class="name">立地</span><span class="rate rate40">3.79</span></li>
<li><span class="name">部屋</span><span class="rate rate35">3.14</span></li>
<li><span class="name">設備・アメニティ</span><span class="rate rate35">3.43</span></li>
<li><span class="name">風呂</span><span class="rate rate40">3.64</span></li>
<li><span class="name">食事</span><span class="rate rate35">3.50</span></li>
</ul>
</dd>

到目前为止,我使用的是 XPATH,但它不起作用。

//*[local-name()='span'][@class='name'][text()='立地']/following-sibling::*/*[local-name() = 'span']

Google sheet 可以在这里找到: https://docs.google.com/spreadsheets/d/1EhZhyhhVyUHQJ1FOTSSyWnqtmD9zKRRGaAlvKcFMn4g/edit#gid=1848100649

Rakuten 在下载数据时似乎阻止了 GoogleSheets。您可以使用 IMPORTFROMWEB 插件来检索数据:

使用的 Xpaths :

//dl[contains(.,"項目別の評価")]//span[1] 
//dl[contains(.,"項目別の評価")]//span[2]

公式:

=IMPORTFROMWEB(B1;B2:C2)

注意:请求数量有限。查看定价或编写您自己的 GoogleAppScript。

您也可以使用 Rakuten API "SimpleHotelSearch"(不过您需要一个应用程序 ID)。您可以从这里测试您的查询:

https://webservice.rakuten.co.jp/explorer/api/Travel/SimpleHotelSearch/

它看起来像("hotelNo" 作为参数):

https://app.rakuten.co.jp/services/api/Travel/SimpleHotelSearch/20170426?format=json&hotelNo=40130&applicationId=XXXXXXX

对于这个例子,它将失败。 Returns :

"hotelRatingInfo": {
            "serviceAverage": 0,
            "locationAverage": 0,
            "roomAverage": 0,
            "equipmentAverage": 0,
            "bathAverage": 0,
            "mealAverage": 0