[英]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.