XMLHTTP с хэш-символом - PullRequest
       28

XMLHTTP с хэш-символом

2 голосов
/ 25 марта 2019



Я пытаюсь очистить сайт с помощью xmlhttp и VBA.

URL имеет символ хеша (#) и неправильно интерпретируется VBA ...

Это та же проблема, что и здесь: Ошибка в XMLHTTP Получить запрос со специальным символом вURL
Код следующий:

Sub webscraping()
Dim x               As String
Dim req             As MSXML2.XMLHTTP60
Dim doc             As HTMLDocument

x = "https://search.gleif.org/#/search/"

Set req = New MSXML2.XMLHTTP60
    With req
        .Open "GET", x, False
        .send
        If .Status <> 200 Then
            MsgBox "Http Request Error"
            Exit Sub
        End If
        Set doc = New MSHTML.HTMLDocument
        doc.body.innerHTML = .responseText
    End With
End Sub

Заранее благодарен

1 Ответ

1 голос
/ 25 марта 2019

Вы можете сделать шаг в сторону, вызвав API напрямую с вашим поисковым термином, как показано ниже. Я использую анализатор json для обработки ответа json. После добавления .bas по ссылке на ваш проект также перейдите в VBE> Инструменты> Ссылки> Добавить ссылку к Microsoft Scripting Runtime.

Обратите внимание, что есть параметры queryString, которые вы можете изменить здесь: "&page%5Bnumber%5D=1&page%5Bsize%5D=15". Это в настоящее время со страницы = 1 и записей на странице в 15.

VBA:

Option Explicit
Public Sub webscraping()
    Dim url As String
    Dim req As MSXML2.XMLHTTP60
    Dim doc As HTMLDocument
    Dim json As Object
    Const TERM = "banana corp."

    url = "https://api.gleif.org/api/v1/lei-records?filter%5Bfulltext%5D=" & Application.EncodeURL(TERM) & "&page%5Bnumber%5D=1&page%5Bsize%5D=15"

    Set req = New MSXML2.XMLHTTP60
    With req
        .Open "GET", url, False
        .send
        If .Status <> 200 Then
            MsgBox "Http Request Error"
            Exit Sub
        End If
        Set json = JsonConverter.ParseJson(.responseText)
    End With
    Stop
    'Do something with json
End Sub

Возвращено большое количество информации, так что вот выдержка из нее:

image

Исследуйте API здесь:

https://www.gleif.org/en/lei-data/gleif-lei-look-up-api/access-the-api

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...