【发布时间】:2021-03-26 07:25:56
【问题描述】:
我有一个问题,我自己找不到解决方案。我试图从以下网站读出值:https://datawrapper.dwcdn.net/6E03v/580/。我想我已经设法在网站的代码中找到了相应的部分 THIS ONE。根据我的理解,可以使用标签“span”或类“fg”找到这些值,但它们似乎都不起作用。这是我在使用标签“span”的版本中使用的代码:
Dim WertFG As Selenium.WebElement
Dim WerteFG As Selenium.WebElements
Dim strTargetTab As String
Dim lgNaechsteFreieZeileZwiSpTblFaelleNachAlter As Long
Dim lgSpalte As Long
Dim lgNaechsteFreieZeileReiterNTVCoronadaten As Long
'Wertzuweisung Variablen
Set ChromeBrowser = New Selenium.ChromeDriver
'Chrome starten und auf die relevante Seite für die gesuchte TabelleCoronaVirusPandemieParameter gehen
ChromeBrowser.Start baseUrl:="https://datawrapper.dwcdn.net/"
ChromeBrowser.Get "/6E03v/577/"
'Werte auslesen
strTargetTab = ThisWorkbook.Worksheets("ZwiSp Tbl Fälle nach Alter").Name
ThisWorkbook.Worksheets(strTargetTab).Activate
ThisWorkbook.Worksheets(strTargetTab).Range("A1:A50").ClearContents
Application.Wait (Now + TimeValue("00:00:03"))
'Tabellenwerte auslesen
Set WerteFG = ChromeBrowser.FindElementsByTag("span")
lgNaechsteFreieZeileZwiSpTblFaelleNachAlter = ThisWorkbook.Worksheets(strTargetTab).Cells(Rows.Count, 1).End(xlUp).Row + 1
lgSpalte = 1
For Each WertFG In WerteFG
ThisWorkbook.Worksheets(strTargetTab).Cells(lgNaechsteFreieZeileZwiSpTblFaelleNachAlter, lgSpalte).Value = WertFG.Text
lgNaechsteFreieZeileZwiSpTblFaelleNachAlter = lgNaechsteFreieZeileZwiSpTblFaelleNachAlter + 1
Next WertFG
ChromeBrowser.Close
有人有想法吗,为什么这不起作用?是否与图表上的值仅在您将鼠标悬停在图表的相应部分上方时显示的事实有关?
感谢您的帮助! 奥利弗
补充: 我想做的事: 将标签“span”的所有值读出到 Excel 中的工作表中。每个值都应写在工作表中的连续单元格中,即 A2、A3、...。
宏的作用: 读出前 4 行标签“span”的值,然后提供 11 行没有值,然后再次显示网站元素“span”的剩余值。我假设如果宏可以正常工作,那么在 11 个空行中,将显示图表的数字(这是我需要的)。我还在这篇文章中附上了读出结果的屏幕截图: Read Out Results Excel Worksheet
【问题讨论】:
-
“它们似乎都不起作用” 不是有用的错误描述。而是描述出了什么问题,你得到了哪些错误,你的代码在哪里或实际做了什么,而不是你期望它做什么。还知道什么已经有效可能很有用。
WerteFG是否包含任何元素?请注意,此ChromeBrowser.FindElementsByTag("span")将在整个 html 代码中找到 allspan元素。 -
感谢您的回复,很抱歉第一轮没有准确,仍然需要学习如何在“程序员”社区中发帖。我知道我设计代码的方式将读出所有跨度元素。我只有有限的技能,而且没有太多,所以设计对我来说很好。我已对原始帖子进行了补充以提供更多信息。
标签: excel vba web-scraping