Почему javascript не разбирает HTML с выборки? - PullRequest
0 голосов
/ 31 мая 2019

Я создаю расширение для Chrome, которое собирает фотографии с различных веб-сайтов. У меня есть URL-адреса каждого веб-сайта, и я хочу получить и проанализировать эти веб-сайты, а затем получить определенные элементы img по классу или идентификатору.

Я использую функцию Javascript fetch() вместе с DOMParser для анализа HTML, и он успешно возвращает документ, но любой запрос DOM возвращает пустые NodeLists / HTMLCollections.

fetch("www.example.com")
.then(res => {
    const parser = new DOMParser();
    const htmlDoc = parser.parseFromString(res, "text/html");
    console.log(htmlDoc.querySelectorAll('h1'))
})

Это дает мне пустой NodeList. Зачем?? И как я могу получить элементы, которые я ищу?

1 Ответ

1 голос
/ 31 мая 2019

Вам нужно будет проанализировать ответ, прежде чем использовать его.Как это:

fetch("//randycasburn.com")
  .then(res => res.text())
  .then(html => {
    const parser = new DOMParser();
    const htmlDoc = parser.parseFromString(html, "text/html");
    console.log(htmlDoc.querySelector('span').textContent)
  })

В противном случае путем передачи самого res будет создан DOM, а res будет приведен к строке ([object Response]), что приведет к следующему DOM: (примечание нет H1)

<html>
  <head></head>
  <body>[object Response]</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...