刮除没有HTML元素ID的数据 - Excel VBA

时间:2017-01-31 00:36:41

标签: html xml vba excel-vba web-scraping

为了让您快速了解我正在尝试做什么 - 我正试图通过一个宏来触发多个博彩公司并通过excel VBA进行交换,这会触发每隔一分钟来刷新价格。

虽然我很熟悉引用一个单元格元素(甚至是行元素然后索引单元格(如下面的代码所示),但是某些网站(甚至网站内的某些页面)似乎没有引用任何ID我都太绿了HTML而且报废一般来解决这个问题 - 这是我遇到的问题的一个例子(爆炸到最后):

enter image description here

现在,如果有appIE.document.getElementById()的替代方案,我全部都是为了它,因为下面的按钮类对我有更多的信息,然后只有3.1价格,如流动性(在上面的例子中有1079欧元可用)以这个价格躺在这个交易所上)我认为这将涉及绝对参考到“下注按钮价格”和“下注按钮大小”类?

我目前的代码涉及声明和分配appIE

Dim appIE as Object
Set appIE = CreateObject("internetexplorer.application")

声明元素并指定它:

Dim targetElement As Object
Set targetElement = appIE.document.getElementById("xxxx")

将值存储为双精度

Dim myValue as Double
myValue = targetElement.innerHTML

然后使用myValue

填充目标单元格

非常感谢任何和所有帮助 - 如果您需要更多细节,请告诉我。

1 个答案:

答案 0 :(得分:1)

我建议querySelector一些链接: | W2C queryselector | Microsoft queryselector |

这使用CSS选择器语法,这在Javascript中非常常见,因为它是JQuery导航DOM的方式。

Chrome非常有用,因为当你移动鼠标时,它的开发者工具会为每个元素提供CSS表达式。我认为您的屏幕截图来自Chrome。

如果你真的非常仔细地看你的丝网印刷图像,你会看到CSS选择器到达单元格所以“td.bet-buttons.lay-cell.ng-scope.first-lay-cell”这个在页脚栏上以及工具提示样式标签上给出

啊,哎呀,我走了,用红色圈出了表情。你去吧

enter image description here

更新:实际上这里有一个不准确的完整路径由完整的页脚文本(即整行)给出,飞行工具提示给出了一个标识符,该标识符在给定父元素的情况下生成一个元素(即只是路径的一部分)