[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как написать граббинг?
webgold
Здравствуйте. Уважаемые программисты! Как сграбить котировку fRTS с сайта _http://www.umis.ru/analytics/quotes_online к себе на сайт и что бы она обновлялась онлайн. Помогите пожалуйста??? С чего начать или посоветуйте какую нибудь статью почитать?
Буду очень благодарин!!



Спустя 2 минуты, 34 секунды (21.10.2010 - 10:45) Michael написал(а):
1) посмотри работает ли у тебя функция file_get_contents(адрес сайта)
2) если работает, в возвращаемых данных(html) - смотри имеется ли и где нужная тебе котировка.
3) вообще для этого есть curl - более сложный вариант решения задачи.

Спустя 41 минута, 20 секунд (21.10.2010 - 11:27) webgold написал(а):
Цитата (Michael @ 21.10.2010 - 07:45)
1) посмотри работает ли у тебя функция file_get_contents(адрес сайта)
2) если работает, в возвращаемых данных(html) - смотри имеется ли и где нужная тебе котировка.

с функцией file_get_contents выводит(копирует ) весь сайт полностью с котировками. (котировки не обновляются)
функцию в индексе я так написал: <? echo file_get_contents ('http://www.umis.ru/analytics/quotes_online'); ?> правильно нет?

Спустя 8 минут, 22 секунды (21.10.2010 - 11:35) webgold написал(а):
Цитата (Michael @ 21.10.2010 - 07:45)
3) вообще для этого есть curl - более сложный вариант решения задачи.

в просторах интернета нашел такой скрипт:
С этим скриптом выводит не ту котировку, которую надо, и к тому еще грузит шаблон сайта.
Может что в этом скрипте доработать?
<?
function
connect($link){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$link);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_GET, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
$otvet = curl_exec($ch);
curl_close($ch);
return $otvet;}
$link = 'http://paint.3dn.ru/index/8-274';
$otvet=connect($link);
$begin = 'return false;"><b>'; //пишите тут то что стоит перед тем что нам нада сграбить
$begin = strpos($otvet, $begin) + strlen($begin);
$end = '</'; //сдесь пишем то что стоит после того что нам нада сграбить
$end = strpos($otvet, $end, $begin);
$lc = substr($otvet, $begin, $end - $begin);
echo($lc);
?>

источник -->> _http://paint.3dn.ru/forum/37-881-1

Спустя 40 минут, 54 секунды (21.10.2010 - 12:16) tmt0086 написал(а):
лови =)
<?
$fp = fsockopen('www.umis.ru', 80);
if ($fp) {
$header = "GET /analytics/quotes_online HTTP/1.0\r\n";
$header .= "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n";
$header .= "Accept-Language: ru-RU,ru;q=0.9,en;q=0.8\r\n";
$header .= "User-Agent: Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 5.1)\r\n";
$header .= "Connection: Keep-Alive\r\n";
$header .= "Host: www.umis.ru\r\n\r\n";
fputs($fp, $header);
while (!feof($fp))
$content .= fgets($fp, 1024);
fclose($fp);


$res=preg_replace("'.*<tr class=\"cfd\" id=\"symbol_fRTS\">'si","<tr class=\"cfd\" id=\"symbol_fRTS\">",$content);
$res=preg_replace("'<tr class=\"cfdusa\"><td colspan=\"4\" class=\"grp_caption\">CFD USA</td>.*</html>'si","",$res);
$res=preg_replace("'<td>'si","<td> ",$res);
print_r($res);
}
?>

Спустя 11 минут, 18 секунд (21.10.2010 - 12:27) webgold написал(а):
Цитата (tmt0086 @ 21.10.2010 - 09:16)
лови =)
<?
    $fp = fsockopen('www.umis.ru', 80);
    if ($fp) {
        $header = "GET /analytics/quotes_online HTTP/1.0\r\n";
        $header .= "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n";
        $header .= "Accept-Language: ru-RU,ru;q=0.9,en;q=0.8\r\n";
        $header .= "User-Agent: Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 5.1)\r\n";
        $header .= "Connection: Keep-Alive\r\n";
        $header .= "Host: www.umis.ru\r\n\r\n";
        fputs($fp, $header);
        while (!feof($fp))
            $content .= fgets($fp, 1024);
    fclose($fp);


    $res=preg_replace("'.*<tr class=\"cfd\" id=\"symbol_fRTS\">'si","<tr class=\"cfd\" id=\"symbol_fRTS\">",$content);
    $res=preg_replace("'<tr class=\"cfdusa\"><td colspan=\"4\" class=\"grp_caption\">CFD USA</td>.*</html>'si","",$res);
    $res=preg_replace("'<td>'si","<td>  ",$res);
    print_r($res);
}
?>

Обалдеть!!! Огромное спасибо тебе!!!+
Супер!!

Спустя 3 часа, 11 минут, 3 секунды (21.10.2010 - 15:38) tmt0086 написал(а):
webgold пожалуйсто
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.