Экспорт HTML в текстовый файл с разными результатами - PullRequest
0 голосов
/ 03 ноября 2018

У меня есть два кода .. которые должны экспортировать HTML-файл в текстовый файл

Sub Demo1()
Dim http        As New XMLHTTP60
Dim html        As New HTMLDocument

With http
    .Open "GET", "https://www.google.com.eg/", False
    .send
    html.body.innerHTML = .responseText

    WriteTxtFile html.body.innerHTML
End With
End Sub

Sub WriteTxtFile(ByVal aString As String, Optional ByVal filePath As String = "C:\Users\Future\Desktop\Output.txt")
Dim fso         As Object
Dim fileout     As Object

Set fso = CreateObject("Scripting.FileSystemObject")
Set fileout = fso.CreateTextFile(filePath, True, True)
fileout.write aString
fileout.Close
End Sub

Sub Demo2()
Dim ie          As Object
Dim f           As Integer

Set ie = CreateObject("InternetExplorer.Application")

With ie
    .Visible = True
    .navigate ("https://www.google.com.eg/")

    Do: DoEvents: Loop Until .readyState = 4

    f = FreeFile()
    Open ThisWorkbook.Path & "\Sample.txt" For Output As #f
    Print #f, .document.body.innerHTML
    Close #f

    .Quit
End With
End Sub

Оба Demo1 и Demo2 являются кодами .. и они привели к "Sample.txt" и "Output.txt" Но я обнаружил, что эти HTML-документы разные результаты Можете ли вы помочь мне уточнить, что является правильным .. и почему они разные?

Спасибо за помощь

1 Ответ

0 голосов
/ 03 ноября 2018

Xmlhttp не предоставляет весь отображаемый контент веб-страницы. В частности, все, что отображается с помощью JavaScript. Никакие скрипты не выполняются.

Internet Explorer, с другой стороны, будет отображать страницу (при условии, что поддерживается версия браузера и синтаксис JavaScript. Например, у вас возникнут проблемы с ec6 - последней версией Ecmascript, поскольку она не поддерживается в старых браузерах. Поверьте на Edge для Windows 10. Вы можете проверить таблицы совместимости, чтобы увидеть, что есть, а что нет)

Если вы ознакомитесь с инструментами разработки для своего браузера, вы сможете изучить, как отображаются различные части веб-страницы. Вы можете научиться отлаживать сценарии и посмотреть, какие изменения внесены в DOM и стили страницы. Часто страница будет выдавать XHR-запросы на обновление содержимого, например, на странице. Если вы хотите сыграть, посмотрите здесь .

Итак, я подозреваю, что первый HTML-документ может иметь меньше контента и отличаться общей структурой DOM от второго на этом основании.

Для проверки различий, связанных с методологией записи в текстовый файл, необходимо сравнить яблоки с яблоками, т. Е. Использовать один и тот же метод доступа и синтаксис для получения содержимого страницы перед записью.

Пожалуйста, укажите различия, если вы хотите более глубокое объяснение.


Обновление страницы изучения:

  1. Вкладка «Сеть Firefox»
  2. Инспектор сети Internet Explorer
  3. Вкладка Chrome Network
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...