Excel VBA Web Scraping Возвращает неверный текст в методе MSXML2.XMLHTTP - PullRequest
0 голосов
/ 03 мая 2020

Я пытаюсь извлечь описание mov ie из этого URL, "https://ssl.ofdb.de/plot/138627, 271359, I-Am-Legend "

Когда я использую CreateObject ("InternetExplorer .Application ") метод дает мне правильную веб-строку, как видно на веб-сайте (этот метод медленный)

Но если я использую MSXML2.XMLHTTP, часть текста вернулась или не читаемый текст ( Но этот метод быстрый)

Вывод первого метода: (Без проблем)

Роберт Невилл (Уилл Смит) Война Эйн Херворгендер Виссеншафтлер, Абер Ашер Коннект Нихт Верхиндерн, Дасс Эйн Вирус vor 3 Jahren d ie gesamte Menschheit befiel. Nur er wurde aus unbekannten Gründen verschont und hat es sich inzwischen in einer immer mehr verwahrlosenden Umgebung eingerichtet.Tagsüber kann er sich verhältnismässig frei bewegen, aber nachts, lauern urichn * 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 Doch d ie Bedrohung wächst ständig und er versucht ein Gegenserum zu entwickeln ...

Результат второго метода:

Роберт Невилл (Уилл Смит), война в Эйвен-Роргене, Виссеншафтлер, aber auch er konnte не верь, дасс эйн, Вирус vor 3 Jahren d ie gesamte Menschheit befiel. Nur er wurde aus unbekannten Gründen verschont und hat es sich inzwischen in einer immer mehr verwahrlosenden Umgebung eingerichtet. Sonnenlicht папоротник халтен канн. Doch d ie Bedrohung wüchst stündig und er versucht ein Gegenserum zu entwickeln ...

Как вы видите, некоторые тексты Unicode присутствуют во втором методе.

Здесь я Прикрепив коды второго метода, есть идеи, как получить тот же текст, что и на веб-сайте?

Link_3 = "https://ssl.ofdb.de/plot/138627,271359,I-Am-Legend"

    'required VBE (Alt+F11) > Tools > References > Microsoft HTML Object Library

    Set xhr = New MSXML2.XMLHTTP60
    Set html = New MSHTML.HTMLDocument

    With xhr
        .Open "GET", Link_3, False
        .setRequestHeader "Content-Type", "text/html; charset=none"
        .send
         html.body.innerHTML = StrConv(.responseBody, vbUnicode)
    End With

Dim sana As String
sana = html.getElementsByClassName("Blocksatz")(0).getElementsByTagName("font")(0).getElementsByTagName("b")(0).innerText
ActiveSheet.Cells(1, 4).Value = Application.WorksheetFunction.Clean(Trim(Application.WorksheetFunction.Substitute(html.getElementsByClassName("Blocksatz")(0).getElementsByTagName("font")(0).innerText, sana, ""))) 
Set xhr = Nothing
 Set html = Nothing
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...