Javascript npm渗透。如何获取元素的属性?
页面的部分HTML代码Javascript npm渗透。如何获取元素的属性?,javascript,node.js,cheerio,osmosis,Javascript,Node.js,Cheerio,Osmosis,页面的部分HTML代码 <div name="price" class="detail-price-test"> <meta itemprop="price" content="3303"> <meta itemprop="priceCurrency" content="test"> <span id="price_label">3 303</span><span class="detail-price-test-si
<div name="price" class="detail-price-test">
<meta itemprop="price" content="3303">
<meta itemprop="priceCurrency" content="test">
<span id="price_label">3 303</span><span class="detail-price-test-sign" id="price_label_sign"> eur</span>
<script>
if (price_json.price != '0') {
var price_container = document.getElementById('price_container'),
price_cheaper_selector = 'detail-price-cheaper';
document.getElementById('price_label').innerHTML = price_json.price_formatted;
document.getElementById('price_label_sign').innerHTML = " eur";
if (parseFloat(price_json.old_price) >
parseFloat(price_json.price) &&
price_container &&
!price_container.hasClass(price_cheaper_selector)
) {
price_container.addClass(price_cheaper_selector);
}
}
</script>
<link itemprop="availability" href="http://schema.org/InStock">
</div>
cosole中的结果:测试:“”
也许JavaScript
script中的问题和渗透不能与此一起工作?在Cheerio中,它是:
$('[itemprop="price"]').attr('content')
渗透作用?不知道,我从没听说过。你的选择器不正确 第一个问题的答案: 选择器应该是:
'meta[itemprop=“price”]@content'
您可以这样做:
osmosis
.get('myURL.com')
.find('meta[itemprop="price"]@content')
.set('price')
.data(console.log) // {price : 3303}
第二个问题的答案:
正确的选择器是
“div.detail-price-test>span#price_标签”
“span#价格标签”
“#价格标签”
osmosis
.get('myURL.com')
.find('div.detail-price-test > span#price_label')
.set('test')
.data(console.log); // {test : 3...}
我还登记了cheerio。不要在这个元素上做得太多。你好,约翰,请看我的答案。您需要更新selector.thx,但在cheerio中,我已经知道attr(),我需要了解OSMOSISIS中的这种可能性如果我是您,我会删除项目的依赖项。这是一个爱好库,不要低估了潜移默化。是的,它有优点和缺点,但对于爬行肯定非常有用。没有一个图书馆的爬行速度能超过渗透所能做到的。它有它的目的。那时候我用的是cheerio。我也试过硒、木偶、噩梦、幻影。但每当我需要快速刮东西时,我总是回到渗透状态。
osmosis
.get('myURL.com')
.find('div.detail-price-test > span#price_label')
.set('test')
.data(console.log); // {test : 3...}