我一直在尝试自动化任务,但是最近遇到了问题。部分任务是将网站上的2条信息复制并粘贴到excel文档中。
以下是网页外观的一些示例:
https://nvd.nist.gov/vuln/detail/CVE-2018-0253
https://nvd.nist.gov/vuln/detail/CVE-2018-0300
https://nvd.nist.gov/vuln/detail/CVE-2018-0256
我要收集的数据是“当前描述”和“ CVSS v3.0基本分数”的值
我总是必须从多个链接中获取数据,但是它们非常相似,唯一的区别在于它是CVE-****-****。
目前,我拥有该文件,以便excel将到网页的实际链接放入列表中。
有没有一种方法可以创建一个宏,该宏会自动浏览链接列表,并从网站中获取“当前描述”和“ CVSS v3.0基本得分”数据,并将其放入excel单元格中。
谢谢您的帮助/建议/提示。
答案 0 :(得分:0)
这就是我的处理方式。显然,您可以调整如何处理丢失的信息。我只是使用提供的CVE提供一个示例。您真的应该尽力而为,因为我不知道您使用的是哪种方法。
Option Explicit
Public Sub GetInfo()
Const BASE_URL As String = "https://nvd.nist.gov/vuln/detail/"
Dim i As Long, CVES(), tempArr()
CVES = Array("CVE-2018-0253", "CVE-2018-0300", "CVE-2018-0256")
For i = LBound(CVES) To UBound(CVES)
tempArr = GetDescriptionAndScore(BASE_URL & CVES(i))
Debug.Print "Desc: " & tempArr(0)
Debug.Print "Score: " & tempArr(1)
Erase tempArr
Next i
End Sub
Public Function GetDescriptionAndScore(ByVal url As String) As Variant
Dim html As New HTMLDocument, arr(1), sResponse As String
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", url, False
.send
sResponse = StrConv(.responseBody, vbUnicode)
End With
sResponse = Mid$(sResponse, InStr(1, sResponse, "<!DOCTYPE "))
With html
.body.innerHTML = sResponse
arr(0) = .querySelector("[data-testid=vuln-description]").innerText
If InStr(1, sResponse, "This vulnerability is currently awaiting analysis") > 0 Then
arr(1) = "Not available"
Else
arr(1) = .querySelector("[data-testid=vuln-cvssv3-base-score]").innerText
End If
End With
GetDescriptionAndScore = arr
End Function
参考(通过VBE>工具>参考):
HTML对象库