Выдернуть данные из сайта

Статус
В этой теме нельзя размещать новые ответы.

anadikt

Гуру форума
Регистрация
28 Янв 2010
Сообщения
433
Реакции
85
а далее нужно сперва подготовить данные перед выводом
сколько не делал, все равно не получается подготовить данные ... как их правильно подготовить к выводу?
 

warg

Постоялец
Регистрация
26 Июн 2007
Сообщения
125
Реакции
141
держи, 15 минут делов на самом деле

PHP:
<?

require('simple_html_dom.php');

//получаем контент страницы

$baseURL = "http://www.sravni.ru";
$url = "http://www.sravni.ru/valjuty/USD/prodazha/novosibirsk/";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120);
$data = curl_exec($ch);
curl_close($ch);

//выдираем нужные данные

$html = new simple_html_dom();
$html->load($data);

$data = array();
$collection = $html->find('.results__item');
foreach($collection as $element) {
    $item = array();
    $bankNodes = $element->find('div.results__item__company__logo img');
    if(count($bankNodes)) {
        $item['bankLogo'] = $bankNodes[0]->attr["src"];
        $item['bankName'] = $bankNodes[0]->attr["title"];
    }
    $valueNodes = $element->find('div.results__item__num div');
    if(count($valueNodes)) {
        $item["cur_usd_in"] = $valueNodes[0]->innertext;
        $item["cur_eur_in"] = $valueNodes[1]->innertext;
        $item["cur_usd_out"] = $valueNodes[2]->innertext;
        $item["cur_eur_out"] = $valueNodes[3]->innertext;
    }
    $dateNodes = $element->find('div.results__item__date');
    if(count($dateNodes)) {
        $item["date"] = $dateNodes[0]->innertext;
    }
    if(count($item)) $data[] = $item;
}

// выводим как душа пожелает

foreach($data as $item) {
    echo $item['bankName']."<br/>";
    echo "<img src='".$baseURL.$item['bankLogo']."' /><br/>";
    echo $item["cur_usd_in"]." $ ".$item["cur_usd_out"]."<br/>";
    echo $item["cur_eur_in"]." € ".$item["cur_eur_out"]."<br/>";
    echo $item["date"]."<br/>";
    echo "<br/><br/>";
}
 

Вложения

  • scrape.rar
    14,5 KB · Просмотры: 4
Последнее редактирование:

anadikt

Гуру форума
Регистрация
28 Янв 2010
Сообщения
433
Реакции
85
держи, 15 минут делов на самом деле
может кто знает как победить теперь проблему, есть еще парсер, но парсит с Для просмотра ссылки Войди или Зарегистрируйся, так теперь толи ЦБР блокирует IP сервера или что то еще... Можно ли как то к парсеру подключить прокси, чтобы сменить IP и как это сделать? Для просмотра ссылки Войди или Зарегистрируйся
 

warg

Постоялец
Регистрация
26 Июн 2007
Сообщения
125
Реакции
141
если скрипт работает нормально на других машинах, то по любому заблокировали по IP.
самый простой вариант обхода, без переписывания - использовать веб-прокси.
Например:
идем сюда
Для просмотра ссылки Войди или Зарегистрируйся
проматываем в самый низ пропуская заманчивые коммерческие предложения и в форме вбиваем нужный URL,
получаем вот такую ссылку
Для просмотра ссылки Войди или Зарегистрируйся
ссылка по факту постоянная, заменяем в парсере Для просмотра ссылки Войди или Зарегистрируйся на нее и все,
обращения теперь будут с одного из IP адресов сервиса.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху