ФорумПрограммированиеПыхнуть хотите?F.A.Q. → Парсинг страницы сайта (пример: курсы валют на сайт).

Парсинг страницы сайта (пример: курсы валют на сайт).

  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 26 марта 2009 г. 21:50, спустя 29 минут 16 секунд

    vlasenkov, а для какой цели узнавать какой тебе нужен прокси?
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • vlasenkov

    Сообщения: 34 Репутация: N Группа: Кто попало

    Spritz 26 марта 2009 г. 22:18, спустя 27 минут 51 секунду

    adw0rd, всмысле, не понял вопроса? Я ничего не узнаю или вы про что? :)
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 27 марта 2009 г. 7:47, спустя 9 часов 28 минут 42 секунды

    vlasenkov, я про


    Тогда другой вопрос, мне дадут допустим, десяток этих адресов, мне их лучше рандомом использовать или как-то можно сделать, чтобы само выбиралось какой использовать?


    vlasenkov, а для какой цели узнавать какой тебе нужен прокси?
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • vlasenkov

    Сообщения: 34 Репутация: N Группа: Кто попало

    Spritz 27 марта 2009 г. 9:41, спустя 1 час 54 минуты 15 секунд

    adw0rd, я опять немного не понял вопроса. Я спрашивал что мне могут дать на этом сайте, список проксей или что? И хотел узнать как лучше их выбирать, чтобы меня не забанили.
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 27 марта 2009 г. 10:02, спустя 20 минут 48 секунд


    Я спрашивал что мне могут дать на этом сайте, список проксей или что?

    Да, скорее всего список проксей, я не всматривался в сайт


    И хотел узнать как лучше их выбирать, чтобы меня не забанили.

    Никак, ты же не можешь предугадать по какому IP тебя забанят, так что методом тыка, не получилось приконнектится, то берешь другой IP
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 27 марта 2009 г. 10:33, спустя 31 минуту 4 секунды

    Пирсинг страницы сайта!!!
    РИАЛЬНЕ!
    все умрут, а я изумруд
  • vlasenkov

    Сообщения: 34 Репутация: N Группа: Кто попало

    Spritz 28 марта 2009 г. 11:27, спустя 1 день 54 минуты

    adw0rd, все понял :) спасибо огромное

  • vlasenkov

    Сообщения: 34 Репутация: N Группа: Кто попало

    Spritz 28 марта 2009 г. 19:40, спустя 8 часов 12 минут 51 секунду

    У меня появился еще один вопрос, как чекать прокси? Я делаю так, но почему-то зацикливание какое-то и постоянно вылезает вся страница
    функция у меня оформлена в классе:


    //получаем один прокси
    //из всего массива
    function one_proxy($aproxy)
    {
    $count = count($aproxy) - 1;

    $number = rand(0, $count);

    //выбираем и проверяем прокси
    $proxy = $aproxy[$number];

    set_time_limit(0);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://www.vlasenkov.com");
    curl_setopt($ch, CURLOPT_PROXY, $proxy);
    $result = curl_exec($ch);
    curl_close($ch);

    if( !empty($result) )
    {
    if( preg_match("/vlasenkov/i", $result) )
    return $proxy;
    else
    $this->one_proxy($aproxy);
    }
    else
    $this->one_proxy($aproxy);

    //return $proxy;
    }


    и в другом файле собственно вызываю эту функцию так:

    //выбираем один из проксей
    $proxy = $parser->one_proxy($aproxy);
    echo $proxy;


    Но почему-то он не выводит прокси, или выводит всю страницу, если даже страница отображается то все равно цикл продалжается, что не так?

    Спасибо!
  • vlasenkov

    Сообщения: 34 Репутация: N Группа: Кто попало

    Spritz 28 марта 2009 г. 20:16, спустя 36 минут 25 секунд

    Я так понял, что $result = curl_exec($ch); выводит содержимое страницы в браузер, а как ее поместить просто в переменную, чтобы не выводилось ничего, а просто хранилось в переменной?
  • vlasenkov

    Сообщения: 34 Репутация: N Группа: Кто попало

    Spritz 28 марта 2009 г. 20:23, спустя 6 минут 33 секунды

    Проблему решил :)

    Чтобы она ничего не выводила надо установить следующее:
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1)
    $result = curl_exec($ch);
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 28 марта 2009 г. 22:39, спустя 2 часа 16 минут 28 секунд

  • Palanik

    Сообщения: 2 Репутация: N Группа: Кто попало

    Spritz 2 марта 2010 г. 19:55, спустя 338 дней 21 час 15 минут


    <?php
    //Определяем сегодняшнюю дату в формате, который используется на сайте cbr.ru
    $date = date("d.m.Y");

    //Определим код нашей валюты на сайте cbr.ru
    //Америконский доллар
    $code='R01235';

    //Выполняем первый пункт, считываем страницу с курсами валют в переменную
    $file = file_get_contents("http://www.cbr.ru/currency_base/D_print.aspx?date_req=".$date);

    //Разбираем страницу с помощью регулярок:
    preg_match("#<Valute ID=\"" . $code . "\".*?>(.*?)</Valute>#is", $file, $m);

    preg_match("#<Value>(.*?)</Value>#is", $m[1], $r);

    //Запятую, отделяющую дробную часть заменяем на точку, и у нас в переменной $dollar находится курс доллара.
    $dollar = str_replace(",", ".", $r[1]);
    ?>


    Немного переделал заменив http://www.cbr.ru/scripts/XML_daily.asp?date_req= на http://www.cbr.ru/currency_base/D_print.aspx?date_req=
    Что то на время начал ругаться, а в чем конкретно не пойму, может подскажете. Пишет следующее, запускаю на DENVER(E)

    Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Moscow' for '3.0/no DST' instead in Z:\home\phpsite1\www\pars-kursy.php on line 12
  • Ewg777

    Сообщения: 510 Репутация: N Группа: Джедаи

    Spritz 2 марта 2010 г. 21:10, спустя 1 час 15 минут 16 секунд

    Palanik, зона не установлена в Денвере. К браткам обратитесь.
  • Palanik

    Сообщения: 2 Репутация: N Группа: Кто попало

    Spritz 3 марта 2010 г. 22:07, спустя 1 день 56 минут

    <?php
    //Определяем сегодняшнюю дату в формате, который используется на сайте cbr.ru
    $date = date("d.m.Y");

    //Выполняем первый пункт, считываем страницу с курсами валют в переменную
    $file = file_get_contents("http://www.cbr.ru/currency_base/D_print.aspx?date_req=".$date);

    //Разбираем страницу с помощью регулярок:
    preg_match("/\<tr\>\<td align=\"right\"\>840.*?\>(.*?)\<\/tr>/is", $file, $m);

    //Запятую, отделяющую дробную часть заменяем на точку, и у нас в переменной $dollar находится курс доллара.
    $dollar = str_replace(",", ".", $m[1]);
    echo $m[1];
    ?>


    Благодарю за наводку, оказывается нужно было обновить своего Денвера - только и всего.
    Код привёл в актуальный вид, правда выплёвывает всё в кодировке utf8.
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 3 марта 2010 г. 22:10, спустя 3 минуты 7 секунд


    Благодарю за наводку, оказывается нужно было обновить своего Денвера - только и всего.
    Код привёл в актуальный вид, правда выплёвывает всё в кодировке utf8.
    ппц.. а то типо гавно да? :)

Пожалуйста, авторизуйтесь, чтобы написать комментарий!