簡體   English   中英

node.js cheerio模塊ge

[英]node.js cheerio module ge

我正在使用node.js和cheerio模塊。 我想從頁面中獲取一些數據。

假設我有這種類型的HTML。

<div class="maindiv">
     <h3 class="result-title">
                                        </span>

<a class="link-name" href="/somelink1.html" data-hovercard-id="ds54sdsd4s5d">Name1</a>


                        </h3>

     <h3 class="result-title">
                                        </span>

<a class="link-name" href="/somelink2.html" data-hovercard-id="ds54sdsd4s5d">Name2</a>



                        </h3>

     <h3 class="result-title">
                                        </span>

<a class="link-name" href="/somelink3.html" data-hovercard-id="ds54sdsd4s5d">Name3</a>


                        </h3>

</div>

如何修改示例波紋管以獲取鏈接標簽的html,鏈接和文本。

request(sub_link, function (error, response, html) {

    if (!error && response.statusCode == 200) {

        var $ = cheerio.load(html);

        $('a.link-name').each(function () {

                            //var data = (this).html();

            var url = this.attr('href');

            console.log(url);

            links_array.push(url);

        });

    }
})

是文檔中關於每個內容的說明

遍歷cheerio對象,為每個匹配的元素執行一個函數。 觸發回調時,將在DOM元素的上下文中觸發函數,因此它引用當前元素,這等效於功能參數元素。 要及早退出每個循環,請返回false。

var fruits = [];

$('li').each(function(i, elem) {
  fruits[i] = $(this).text();
});

fruits.join(', ');
//=> Apple, Orange, Pear

所以你必須更換

var url = this.attr('href');

var url = $(this).attr('href');

您調用each並在每次迭代時push 您可能應該問自己, map是否會更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM