Получить сайт DOM через http запрос в GO - PullRequest
0 голосов
/ 02 октября 2019

в GO Я использую HTTP-запрос для получения html сайта и вижу в некоторых элементах разницу, чем при использовании Inspect в Chrome. Поиск в google и некоторое прочтение привели меня к пониманию того, что в Inspect я вижу этап, называемый DOM, который принимает необработанный html и запускает некоторые java-скрипты, которые добавляют информацию и изменяют элементы (не волнуйтесь, я новичок в этом^ _ ^). Почему я могу получить в GO DOM вместо необработанного HTML? Я знаю, что могу использовать Chromedp, но я надеюсь на что-то более похожее на HTTP-пакет, потому что Chromedp немного перегружен производительностью. Буду очень признателен за любые предложения, спасибо.

Ответы [ 2 ]

2 голосов
/ 02 октября 2019

Простой HTTP-запрос (через Go или что-либо еще) только когда-либо получит необработанный HTML. DOM - это созданная браузером интерпретация необработанного HTML. Да, есть даже что-то вроде Shadow DOM .

JavaScript интерпретируется движком JavaScript браузеров, который применяет изменения к DOM, добавляет прослушиватели событий и динамически манипулирует указанным DOM.

Вот почему вы не можете получить состояние DOM, которое вы видите в браузере, через HTTP-запрос. Запрос не содержит всех манипуляций DOM на стороне клиента, выполняемых через движок JavaScript браузера. Библиотека запросов - это не браузер.

Чтобы получить доступ к полной визуализации DOM, которую вы привыкли видеть в Инструментах разработчика, вам понадобится более сложная настройка веб-поиска, обычно с использованием безголовыхбраузер, как Кукольник . Тем не менее, это написано в Node.js. С учетом Го, вам может повезти с chromedp или cdp .

0 голосов
/ 02 октября 2019

DOM означает «Объектная модель документа», которая представляет собой дерево узлов, где каждый узел представляет элемент базового документа. Узлы могут соответствовать элементам, тексту, комментариям и т. Д. Существует множество пакетов DOM на основе go. Один из них, на который стоит обратить внимание:

https://godoc.org/golang.org/x/net/html

Позволяет анализировать HTML и проходить элементы документа программно.

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