如何在 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
我正在尝试在 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