如何使用 jquery 抓取变量子元素的值
How can I crawl values of variable sub-elements using jquery
我正在使用node.js编写一个爬虫用于研究,并抓取数据以供将来使用。我知道如何抓取页面中的单个元素,但是经过一整天的研究,我无法弄清楚如何获取可变子元素的值。
这是我想要抓取的HTML部分。"attrgroup"的每个子元素都有不同数量的
<p class="attrgroup">
<span><b>4</b>BR / <b>1</b>Ba</span>
<span><b>1200</b>ft<sup>2</sup></span>
<span>duplex</span>
<span>laundry on site</span>
<span>street parking</span>
<br><span>cats are OK - purrr</span></p>
这是我的代码
topics = topics.map(function (topicPair) {
var topicUrl = topicPair[0];
var topicHtml = topicPair[1];
var $ = cheerio.load(topicHtml);
return ({
//[1]I got correct value,such as duplex, using following clauses.
att1: $('.attrgroup').children().eq(0).text().trim(),
att2: $('.attrgroup').children().eq(1).text().trim(),
att3: $('.attrgroup').children().eq(2).text().trim(),
//[2]I want all of them,but.each function doesn't return the correct data
atts: $('.attrgroup').children().each(function(){
$(this).text()
}),
});
});
我得到的结果是这样的:
att1: '4BR / 1Ba',
att2: '1200ft2',
att3: 'duplex'
atts: { '0': [Object],
'1': [Object],
'2': [Object],
'3': [Object],
'4': [Object],
'5': [Object],
options: [Object],
_root: [Object],
length: 7,
prevObject: [Object] },
目前,我知道原因可能是$(this(,一个jquery对象。我试图将其转换为 DOM 对象,但这也不起作用。任何人都可以帮我纠正我的代码的那部分,或者告诉我如何修复它。它不必使用每种方法,任何方法都是受欢迎的。或者提示也会有很大帮助。提前感谢!
也许是这样的?
return (function () {
var object = {};
$('.attrgroup').children().each(function(i, element){
object["att" + i] = $(element).text().trim();
});
return object;
})();
相关文章:
- 如何计算每个元素's的高度,并将这些值用作函数中的变量
- 如何将php变量作为javascript中列表的元素
- jquery使用name from变量按类选择元素
- 在JavaScript中,如何修复元素显示和变量创建之间的初始差异
- 为什么不是't my元素:使用变量而不是字符串时包含(变量)功?jquery
- 使用输入变量设置元素的值
- 要更改变量的高度li元素
- 确定变量中元素的数量
- dom元素与javascript变量的绑定
- 如何在html元素中打印javascript变量
- 访问带有变量的Object元素时出现问题
- 如何在 Aurelia(奥雷利亚)中访问自定义元素中的变量
- AngularJS字符串变量到使用sanitize的HTML元素
- 如何在 jQuery 中获取具有特定父类的所有元素的内容,并将它们传递给 GET 变量
- 使用jquery访问聚合物元素变量
- 选择克隆的元素变量中的元素
- 从 HTML 文档中删除但不删除元素/变量
- 将GC清除其侦听器中引用的已移除元素变量
- 元素变量的类型
- Microsoft Metro - Windows 应用商店应用程序 - 元素变量