#javascript #jquery #node.js #web-scraping #cheerio
#javascript #jquery #node.js #очистка веб-страниц #приветствие
Вопрос:
Попытка очистить элемент price на этой странице:
Не удалось ничего получить при запуске console.log
, какие-либо предложения? Я проверил, что я выбираю правильный элемент.
var request = require('request');
var cheerio = require('cheerio');
var url = 'http://us.asos.com/asos/asos-bomber-jacket-in-khaki/prd/5773457?iid=5773457amp;affid=14174amp;channelref=product searchamp;mk=abcamp;currencyid=2amp;gclid=CIvXk9DEt88CFYpehgodLo0Ivg';
request(url , function(error, response, html) {
if (!error amp;amp; response.statusCode == 200) {
var $ = cheerio.load(html);
$('span.current-price').each(function(i, element){
console.log($(this).text());
})
Ответ №1:
current-price
Я вижу в этом HTML следующее:
<div class="current-price">
Итак, $('span.current-price')
не будет соответствовать этому.
Вам нужно:
$('div.current-price')
или просто
$('.current-price')
Комментарии:
1. Хм, похоже, для меня это все еще не работает. Ниже приведен элемент, который я пытаюсь удалить, похоже, он все еще находится внутри, но, возможно, я что-то упускаю.<span>
<span data-id="current-price" data-bind="text: priceText(), css: {'product-price-discounted' : isDiscountedPrice }" class="current-price">$49.00</span>
2. @kmpace — Я не вижу этого элемента в необработанном HTML страницы, на которую вы ссылались. Он находится в DOM после загрузки страницы в браузер, но не в исходном исходном коде страницы, поэтому он должен добавляться с помощью Javascript. Cheerio просматривает только НЕОБРАБОТАННЫЙ HTML, поэтому он его не видит.