如何使用Excel VBA从网站中提取数据
我试图编写VBA代码,从网站上获取产品的价格。为此,我在VBA引用中打开了“Microsoft HTML对象库”和“Microsoft Internet控件”。然而,当我开始搜索附加价格的项目的名称时,代码失败了。如果有人能提供解决方案,我们将不胜感激 下面是我想从中复制price的示例网页链接。 以下是我的初始代码:如何使用Excel VBA从网站中提取数据,vba,excel,automation,Vba,Excel,Automation,我试图编写VBA代码,从网站上获取产品的价格。为此,我在VBA引用中打开了“Microsoft HTML对象库”和“Microsoft Internet控件”。然而,当我开始搜索附加价格的项目的名称时,代码失败了。如果有人能提供解决方案,我们将不胜感激 下面是我想从中复制price的示例网页链接。 以下是我的初始代码: Sub Update() Dim IE As New InternetExplorer IE.Visible = False IE.navigate "http://
Sub Update()
Dim IE As New InternetExplorer
IE.Visible = False
IE.navigate "http://www.chemistwarehouse.com.au/buy/36985/Reach-Dentotape-Waxed-20m"
Do
DoEvents
Loop Until IE.readyState = READYSTATE_COMPLETE
Dim Doc As HTMLDocument
Set Doc = IE.document
Dim getprice As String
getprice = Trim(Doc.getElementsByTagName("div class="Price" itemprop="price"").innerText)
Worksheets("Sheet1").Range(C1).Value = getprice
End Sub
函数
getElementsByTagName()
只需要标记名作为参数:
e、 g.getElementsByTagName(“div”)
请改为尝试getElementsByClassName()
:
getprice = Trim(Doc.getElementsByClassName("Price").Item.innerText)
函数
getElementsByTagName()
只需要标记名作为参数:
e、 g.getElementsByTagName(“div”)
请改为尝试getElementsByClassName()
:
getprice = Trim(Doc.getElementsByClassName("Price").Item.innerText)
上面的代码有一些问题 第1期
getprice=Trim(Doc.getElementsByTagName(“div class=“Price”itemprop=“Price”).innerText)
这:
div class=“Price”itemprop=“Price”
不是标记名。标记名是输入、IMG、锚等。但是,我们可以看到您感兴趣的price元素的Class
属性。我们可以通过以下操作更改选择此元素的方式:
getprice=Trim(Doc.getElementsByClassName(“Price”)(0.innerText)
您可能会在元素选择的末尾注意到(0)
。这是为了指示正在从Price ClassName集合中选择哪个元素。getElementsByClassName返回多个元素,第一个元素为0
第二期
工作表(“Sheet1”)。范围(C1)。值=getprice
我没有C1
引用到任何地方。引用特定单元格的一种方法是使用字符串来表示范围。从您的代码可以看出:
工作表(“Sheet1”).Range(“C1”).Value=getprice
上述代码存在一些问题
第1期
getprice=Trim(Doc.getElementsByTagName(“div class=“Price”itemprop=“Price”).innerText)
这:
div class=“Price”itemprop=“Price”
不是标记名。标记名是输入、IMG、锚等。但是,我们可以看到您感兴趣的price元素的Class
属性。我们可以通过以下操作更改选择此元素的方式:
getprice=Trim(Doc.getElementsByClassName(“Price”)(0.innerText)
您可能会在元素选择的末尾注意到(0)
。这是为了指示正在从Price ClassName集合中选择哪个元素。getElementsByClassName返回多个元素,第一个元素为0
第二期
工作表(“Sheet1”)。范围(C1)。值=getprice
我没有C1
引用到任何地方。引用特定单元格的一种方法是使用字符串来表示范围。从您的代码可以看出:
工作表(“Sheet1”).Range(“C1”).Value=getprice
代码在哪一行失败?代码在哪一行失败?太棒了。非常感谢。谢谢