Как спарсить сайт?

Discussion in 'PHP' started by darksmoke, 30 Dec 2014.

  1. darksmoke

    darksmoke New Member

    Joined:
    5 Nov 2010
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    Добрый день
    Хочу спарсить курс валют с сайта http://minfin.com.ua/currency/banks/usd/
    Но вот столкнулся с проблемой, что курс валют подтягивается, наверное, через яваскрипт.

    Как курс валют можно выдергнуть?

    Сейчас делаю так
    PHP:
    function minfin_usd()
    {
    /* minfin_usd */

    //    $file = file_get_contents('http://minfin.com.ua/currency/banks/usd/');

        
    $curl curl_init();
        
    curl_setopt_array($curl, array(
            
    CURLOPT_RETURNTRANSFER => 1,
            
    CURLOPT_URL => 'http://minfin.com.ua/currency/banks/usd/',
            
    CURLOPT_USERAGENT => 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)'
        
    ));
        
        
    $resp curl_exec($curl);
        
    curl_close($curl);

        
    $file str_replace(array("\r""\n"' '), ''$resp);


        
    $pattern "/<td class=\"price\">(.*)/i";
        
    preg_match_all($pattern$file$matches);
    }

    Фаер багом навожу на курс, хтмл код есть, открываю код страницы, курса там нет.
     
  2. yarbabin

    yarbabin HACKIN YO KUT

    Joined:
    21 Nov 2007
    Messages:
    1,663
    Likes Received:
    916
    Reputations:
    363
    фаербаг стучится к дому страницы, а исходник есть исходник, вероятно подтягивается через js, да.
    php.net/manual/ru/class.domxpath.php
     
    _________________________
  3. darksmoke

    darksmoke New Member

    Joined:
    5 Nov 2010
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    А как то можно эти курсы спарсить?
     
  4. yarbabin

    yarbabin HACKIN YO KUT

    Joined:
    21 Nov 2007
    Messages:
    1,663
    Likes Received:
    916
    Reputations:
    363
    хотя у меня все ок, сделал по твоему алгоритму, только на питоне.
    [​IMG]

    видимо, я не так понял. что именно нужно? курс валюты нормально вытягивается.
     
    _________________________
  5. lifescore

    lifescore Elder - Старейшина

    Joined:
    27 Aug 2011
    Messages:
    651
    Likes Received:
    511
    Reputations:
    72
    [​IMG]
    где прогружает... что прогружает..?
     
  6. MaxFast

    MaxFast Elder - Старейшина

    Joined:
    12 Oct 2011
    Messages:
    575
    Likes Received:
    149
    Reputations:
    94
    Подскажи регулярку под определённый элемент (div, span, например). Именно содержимое этого элемента.
     
  7. lifescore

    lifescore Elder - Старейшина

    Joined:
    27 Aug 2011
    Messages:
    651
    Likes Received:
    511
    Reputations:
    72
    (?<=<div>).*?(?<=</div>)

    много строчный текст как-то так
    (?<=<span>)[W\w].*(?<=</span>)
     
    1 person likes this.
  8. darksmoke

    darksmoke New Member

    Joined:
    5 Nov 2010
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    И действительно выдераются курсы.
    Спасибо большое.

    Если кому не лень, подскажите регулярку что бы в двух переменных оказался курс и название банка.

    А то что то не получается вырвать целеком
     
  9. lifescore

    lifescore Elder - Старейшина

    Joined:
    27 Aug 2011
    Messages:
    651
    Likes Received:
    511
    Reputations:
    72

    x-path

    //div[@class="c-tab mrg"]/table[@class="tstyle b-mrg"]/tbody/tr[@class="tooltips color-lightening2"]
    получаем на странице http://minfin.com.ua/currency/usd/
    PHP:
    10:00 
    Platinum Bank
    16.480  
    regex

    <span>[^<>]*?</span></div></td>[^<>]*?<td[^<>]*?><b>\d{2}\.\d{3}

    получаем
    PHP:
    Platinum Bank
    16.480
    ну итд


    Вообщем развлекайтесь)
    http://regexr.com/3a52s
     
    #9 lifescore, 30 Dec 2014
    Last edited: 30 Dec 2014
    1 person likes this.
  10. yoweb

    yoweb Banned

    Joined:
    17 Jun 2013
    Messages:
    120
    Likes Received:
    2
    Reputations:
    0
    щас лучше писать парсеры на qt c++ framework, можно как демон на vps сервере запускать из php.
     
  11. zperecz

    zperecz Banned

    Joined:
    27 Jun 2003
    Messages:
    12
    Likes Received:
    0
    Reputations:
    0
    чтобы не мучатся сканируй основной скрипт . найди путь к js и скачай его к себе а уже в js можно менять под свои нужды
    для автоматизации можешь написть простенький скрипт POST чтобы каждый раз одно и тоже не делать редактором