【问题标题】:How to scrape table?如何刮桌子?
【发布时间】:2015-02-25 22:39:00
【问题描述】:

我想检查一个项目@www.bgstechnic.com/availability的可用性

例如“1195”

我编写了这个 VBA 代码:

Sub ImportMyData()

    Dim IE As New InternetExplorer
    
    IE.Visible = False
    IE.navigate "http://www.bgstechnic.com/availability?processed&F1244467957750MNRHTT=_"
    
    Do
        DoEvents
    Loop Until IE.readyState = READYSTATE_COMPLETE
    
    IE.document.getElementById("item-numbers").Value = "1195"
    
    Set goBtn = IE.document.getElementById("bgs-submit")
    goBtn.Click
    
    Do
        DoEvents
    Loop Until IE.readyState = READYSTATE_COMPLETE
    
    Dim sdd As String
    sdd = IE.document.getElementById("availability-results").innerText
    
    MsgBox sdd

End Sub

我需要在 Excel 中插入文本“有货,超过 50 件。有货”,但我找不到此子表的 ID (?)

【问题讨论】:

  • 现在很奇怪:如果我更改为 "sdd = IE.document.getElementsByTagName("td")(1).innerText" 我会收到运行时错误 91,但通过按 f5 并进一步运行,我收到可用数量的消息...任何 clou 如何解决这个问题?

标签: excel web-scraping excel-2013 vba


【解决方案1】:

您必须按类名进一步深入。试试这个:

sdd = IE.Document.getElementsByClassName("availability-desc")(0).innerText

这将从可用性列返回第 (0) 行的描述。这应该可以,但是(免责声明)由于一些 #!@#!# IE 问题,我没有尝试过;)

【讨论】:

猜你喜欢
  • 2023-03-22
  • 1970-01-01
  • 2019-07-22
  • 2019-03-25
  • 2021-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多