页面的部分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-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>
1)第一个问题:我如何从元itemprop =“ price”中提取值为3303的attr内容? 还是渗透,这是不可能的?
2)第二个问题:为什么我无法在此<span id="price_label">3 303</span>
中获得价值3303
osmosis
.get('myURL.com')
.find('div.detail-price-test span#price_label') //or div.detail-price-test span[id=price_label]
.set('test')
.data(console.log);
cosole中的结果:测试:
也许JavaScript
脚本中的问题和渗透不能解决这个问题?
答案 0 :(得分:0)
在Cheerio中是:
$('[itemprop="price"]').attr('content')
渗透?不知道,我从未听说过。
答案 1 :(得分:0)
您的选择器不正确。
第一个问题的答案:
选择器应为:df$time <- format(mdy(df$time),"%d/%m/%Y)
您可以执行以下操作:
'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_label'
'span#price_label'
做类似的事情:
'#price_label'