我想从Google表格中提取Expedia酒店房间的评级。不幸的是,我的代码不起作用。你能看看吗?
=IMPORTXML(https://www.expedia.co.in/Manila-Hotels-ZEN-Rooms-Pioneer-Street.h17368867.Hotel-Information,"//span[@class='rating-number']")
答案 0 :(得分:0)
Option Explicit
Sub autofill()
Dim rng As Range
Dim ws As Worksheet
Dim y
Set ws = Sheets("Sheet1")
'range
Set rng = ws.Range("A1:" & ws.Range("A1").End(xlToRight).Address)
'looping
For Each y In rng
'autofilling, note the split function retreiving the letter for the range
ws.Range(Split(Cells(, y).Address, "$")(1) & "2").autofill Destination:=ws.Range(Split(Cells(, y).Address, "$")(1) & "2:" & Split(Cells(, y).Address, "$")(1) & ws.Range("A1").SpecialCells(xlCellTypeLastCell).Row)
Next y
End Sub
可以导入简单的HTML,但它不适用于大多数现代网站。在这种情况下,importXml()
也无法检索importXml()
,div
等。但是,您可以获取整个span
然后解析它。
只需将您的XPath查询更改为html
即可。从源头上看,您知道在哪里以及如何找到评级。所以只需//html
获取它。
样本表为here。我和其他几家酒店一起测试过,它运行良好。