Я пытаюсь загрузить документы SEC (10-K, 8-K и т. д.) с веб-сайта SEC, используя Excel vba. Я использую getelementsbytagname для определения URL-адреса для подачи. Однако, когда я использую частную функцию «URLDownloadToFile», я не могу загрузить файл, вместо этого я получаю файл «Inline XBRL Viewer.htm», который не содержит никакого текста регистрации. Ниже приведен код, который я использую:
htmlCol3 = htmlDoc1.getElementsByTagName("a")
For Each htmlInput3 In htmlCol3
If Left$(htmlInput3, 36) = "https://www.sec.gov/ix?doc=/Archives" Then
URL1 = Trim(htmlInput3)
buf = Split(URL1, ".")
ext = buf(UBound(buf))
If dt >= rptdt Then
strSavePath = FOL & "\" & CIK & "_" & FIL & "_" & str1 & "." & ext
ret = URLDownloadToFile(0, URL1, strSavePath, 0, 0)
Ниже приведена функция загрузки файла, которую я использую:
Private Declare Function URLDownloadToFile Lib "urlmon" Alias _
"URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal _
szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Я пытаюсь получить первый URL-адрес из столбца «Документ» в верхней таблице с этой веб-страницы:
https://www.sec.gov/Archives/edgar/data/769397/000076939719000016/0000769397-19-000016-index.htm
Чтобы получить настоящую регистрацию, удалите бит ix?doc=
, чтобы у вас был URL-адрес, начинающийся с https://www.sec.gov/Archives/...
.
например
URL1 = Replace(URL1, "https://www.sec.gov/ix?doc = ", "https://www.sec.gov")