Извлечение цен из HTML с помощью jQuery - PullRequest
0 голосов
/ 27 марта 2012

Я анализирую HTML-документ, и мне нужно извлечь все цены в нем (формат $ 99,00). Поэтому я хочу извлечь все элементы, которые содержат подстроку "Price" (или "price") в своем классе или атрибуте id. Но я попытался использовать что-то вроде $ ("[class * = 'Price']") или $ ("[id * = 'Price']"), а затем конкатенировать результаты в массиве, но часть селектора jquery не работает должным образом не находит ничего. Я делаю что-то не так или есть лучший способ сделать это? Любые предложения для лучшего подхода? Спасибо.

ОБНОВЛЕНИЕ : На самом деле я использую порт jQuery с именем phpQuery для php.

UPDATE2 : я не знаю точного класса или идентификатора элементов, так как это общий сценарий, который я буду запускать на разных сайтах электронной коммерции, поэтому я использую * = подстановочный знак, чтобы получить все элементы (в основном, a, div, span и т. д., мне не нужно вводить). Я понял это, и это то, что я до сих пор:

function getPrice($doc){
    phpQuery::selectDocument($doc);
    $prices = array();
    foreach(pq("[class*='Price'], [class*='price'], [id*='Price'], [id*='price']") as $res){    
        $each = pq($res);

        if(preg_match('/\$\d+(?:\.\d+)?/', $each->text(), $matches)){
            echo '<br>'.$matches[0].'</br>';
            $prices[] = $each->html();
        }   
    }
}

Это печать правильных элементов. Теперь мне нужно извлечь размер шрифта этих элементов, чтобы я мог отсортировать массив по размеру шрифта.

Ответы [ 2 ]

0 голосов
/ 27 марта 2012

Выберите по идентификатору: $("#Price")

Выбор по классу: $(".Price")

Показ вашего HTML поможет.

0 голосов
/ 27 марта 2012

Отдай это назад

$(function(){
    $('.price').each(function(){
        //create your array here of $(this).val() or $(this).html()
    });
});
...