首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当有多个类名相同时,如何使用'getelementsbyclassname‘?

当有多个类名相同时,如何使用'getelementsbyclassname‘?
EN

Stack Overflow用户
提问于 2019-05-14 08:53:32
回答 2查看 162关注 0票数 0

我正在尝试解析一个在'span‘标签上带有getelementsbyclassname的innertext。但是有几个不同的内部文本与相同的类名相匹配。如何解析内部文本?

https://finance.naver.com/item/sise_day.nhn?code=063760 ->是我试图解析的internet explorer文档。

我想要得到具体的内文'15,550‘,这是昨天的收盘价。

enter image description here

EN

回答 2

Stack Overflow用户

发布于 2019-05-14 10:27:06

尝试参考下面的示例代码可以帮助您找到内部文本= 15,550。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Sub demo()
Dim element As IHTMLElement
Dim elements As IHTMLElementCollection
Dim ie As InternetExplorer
Dim val, val1 As String
Dim html As HTMLDocument
val = "15,550"


Set ie = New InternetExplorer

ie.Visible = True

ie.Navigate "https://finance.naver.com/item/sise_day.nhn?code=063760"
'Wait until IE has loaded the web page

Do While ie.ReadyState <> READYSTATE_COMPLETE


DoEvents

Loop

Set html = ie.document

Set elements = html.getElementsByClassName("tah p11")

Dim count As Long
Dim erow As Long
count = 1
For Each element In elements
If element.className = "tah p11" Then
erow = Sheet1.Cells(Rows.count, 1).End(xlUp).Offset(1, 0).Row
val1 = html.getElementsByClassName("tah p11")(count).innerText

If val = val1 Then
Cells(erow, 1) = html.getElementsByClassName("tah p11")(count).innerText

End If
count = count + 1
End If
Next element
End Sub

输出:

这只是一个示例代码,供您参考。此外,您可以尝试修改代码以获得所需的输出。

票数 0
EN

Stack Overflow用户

发布于 2019-05-14 10:41:04

当在表中定位时,通过nth-of-type css选择器利用行和列索引。你想要第四行,第二列。我使用css选择器作为一种更快的方法,因为现代网站已经为此进行了优化。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ie.document.querySelector(".type2 tr:nth-of-type(4) td:nth-of-type(2)").innerText

您可以简单地缩写为

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tr:nth-of-type(4) td:nth-of-type(2)

作为页面上具有此坐标的第一个表。

我看不到任何有用的东西,但也许还可以检查一下APIs

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56126430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文