Cheerio在section标签中获取p标签的内容

时间:2019-02-15 17:31:28

标签: javascript node.js web-crawler cheerio

Cheerio不返回嵌套在多个其他标签之间的<p id="target-content">标签的内容。我使用cheerio并提出要求。我的代码看起来像这样,但是它总是返回null

我尝试获取ID为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 :(得分:0)

  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 

我希望这个线索可以为您提供帮助