Excel VBsearch网页上的文本和复制相同元素中的信息

我是比较新的VBA。

我试图用这个代码从网站上获取一些信息。 当我通过Element实现时,我必须search标签名称tr并使用它旁边的数字来定义我想要使用哪一个。 问题在于它随着网站上的位置而频繁变化。 目前我要search的关键字及其包含的信息如下所示:

 <tr> <td class="nt">Operations</td> <td>Windows</td> </tr> 

所以如果我可以通过“操作”类来search,并获得“Windows”的信息,这将有所帮助。 另外,我目前有一个错误

接下来没有For

如果可能的话,我有办法在closures页面之前使用它来做多个search吗? 所以我寻找多个特定的单词,并将这些数据input到不同的单元格,然后再移动到下一个将重复的列,直到x值结束。 我目前只有设置为x = 2到5,但是我希望在未来增加到10或更高。

当前的代码看起来像这样。

 Private Sub Worksheet_Change(ByVal Target As Range) For x = 2 To 5 If Target.Row = Cells(x, 35).Row And _ Target.Column = Cells(x, 35).Column Then 'If Target.Row = Range("ManufacturerPartNumber").Row And _ 'Target.Column = Range("ManufacturerPartNumber").Column Then Dim IE As New InternetExplorer 'IE.Visible = True 'For x = 2 To 5 'IE.navigate "" & Range("Website_1").Value IE.navigate "" & Cells(x, 35).Value Do DoEvents Loop Until IE.readyState = READYSTATE_COMPLETE Dim Doc As HTMLDocument Set Doc = IE.document Dim sDD As String sDD = InStr(1, IE.document.body.innerHTML, "Processor Model") 'sDD = Trim(Doc.getElementsByTagName("Processor Model")(1).innerText) 'Use this with tag like dd and number for which it appears like 0 or 1 IE.Quit Dim aDD As Variant aDD = Split(sDD, ",") Cells(x, 44).Value = aDD(0) 'Range("ProcessorNumberCd").Value = aDD(0) 'Range("OSProvided").Value = aDD(0) Next x End If 'MsgBox "Complete" End Sub 

我想你想抓住“内部文本”。 看看下面的例子。

在这里输入图像描述

 Sub Scraper() Dim item As Long Dim priceStr As String Dim priceTag As Object Dim priceTable As Object item = "10011" 'this will eventually be placed in a loop for multiple searches Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True ' navigate and download the web page objIE.Navigate "www.google.com" Do While objIE.ReadyState <> 4 Or objIE.Busy DoEvents Loop 'objIE.Document.getElementsByTagName("input")(0).Value = item 'objIE.Document.getElementByID("FDI").Click Set priceTable = objIE.Document.getElementByID("price_FGC") Set priceTag = priceTable.getElementsByTagName("u")(3) priceStr = priceTag.innerText Sheet1.Range("A1").Value = priceStr objIE.Quit End Sub 

另外,看看这个链接的其他几个如何做其他类似的事情。

http://www.tushar-mehta.com/publish_train/xl_vba_cases/vba_web_pages_services/index.htm