Cheerio получить содержимое тега p внутри тега раздела - PullRequest
0 голосов
/ 15 февраля 2019

Cheerio не возвращает содержимое тега <p id="target-content">, который вложен между несколькими другими тегами.Я использую Cheerio и запрос.Мой код выглядит так, но он всегда возвращает null.

Я пытаюсь получить содержимое абзаца с идентификатором id=target-content.

var webpage = '...';
request(webpage, function(err, res, body) {
if (err) console.err(err);
if (res.statusCode === 200) {
    var $ = cheerio.load(body);
    $('p[id="target-content"]').text(); // returns null
}
});


<body>
    <div id="foobar">
        <div>...</div>
        <div>...</div>
        <div>...</div>
        <section id="foo">
            <header></header>
            <section id="bar">
                <div></div>
                <div></div>
                <section id="container">
                    <p id="target-content">
                        Stackoverflow is amazing.
                    </p>
                </section>
            </<section>
        </section>
    </div>
</body>

Я ожидаю вывод Stackoverflow is amazing, но я получаю null или просто не выводить вообще.Я ценю любую помощь.Большое спасибо.

1 Ответ

0 голосов
/ 16 февраля 2019
  1. Во-первых, потому что вы были посвящены if (err) console.err(err);, я думаю, что вам не нужно снова инициировать if(res.statusCode === 200).Но это необязательно
  2. Сначала проверьте console.log(res.statusCode), чтобы проверить, что содержится в res.statusCode
  3. console.log( $('p[id="target-content"]').text();) или сохраните в переменной, как эта
 const result = $('p[id="target-content"]').text();
 console.log(result) //if still null, try ``console.log $('p[id="target-content"]').data`` again to check with other options, or ``console.log $('p[id="target-content"]')``
 return result 

Iнадеюсь, что эта подсказка может помочь вам

...