Помогите спарсить телефон с Avito

Начнем с того что Для просмотра ссылки Войди или Зарегистрируйся- нужно брать со страницы, это свое образная подпись.
А CORS должен прописать avito, что б дать вам возможность общаться с ними.
Если вам нужно в дальнейшем просто тупо сохранить этот номер то можно парсить просто php.
Сначала получить ключ, а потом парсить как обычный json
 
Начнем с того что Для просмотра ссылки Войди или Зарегистрируйся- нужно брать со страницы, это свое образная подпись.
А CORS должен прописать avito, что б дать вам возможность общаться с ними.
Если вам нужно в дальнейшем просто тупо сохранить этот номер то можно парсить просто php.
Сначала получить ключ, а потом парсить как обычный json
7767bda2a10df1b9f849e67a7a8eb263 - получаю, но что с ним делать не знаю. Номер телефона планируется сохранять с прочими данными. Если располагаете временем и желанием - не могли бы вы привести пример парсинга номера на php? ниже скрипт, с помощью которого забираю код из ссылки:

 
7767bda2a10df1b9f849e67a7a8eb263 - получаю, но что с ним делать не знаю. Номер телефона планируется сохранять с прочими данными. Если располагаете временем и желанием - не могли бы вы привести пример парсинга номера на php? ниже скрипт, с помощью которого забираю код из ссылки:

PHP:
<?php
    define('DOMAIN','m.avito.ru');
    define('SCHEME','https://');
    define('PATERN','~<a class="person-action button button-solid button-blue button-large action-show-number action-link link "(.*?)phone/(.*?)".*~is');
  
    $url = 'https://m.avito.ru/kaluga/komnaty/komnata_10_m_v_5-k_33_et._514069333';

    function get($url, $ajax=false){
        $ch = curl_init ();
       curl_setopt ($ch , CURLOPT_URL , $url);

        if($ajax) {
           $headers = array(
               'x-requested-with: XMLHttpRequest',
               'accept: application/json, text/javascript, */*; q=0.01',
               'accept-language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4,uk;q=0.2',
               'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36',
               'referer: ' . str_replace(SCHEME . DOMAIN,'',$url), // game of imitation :)
            );
            curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        }
       curl_setopt($ch, CURLOPT_RETURNTRANSFER , 1 );
       $content = curl_exec($ch);
       curl_close($ch);
       return $content;
    }
  
    $content = get($url);

    preg_match_all(PATERN, $content, $matches);
    $key = $matches[2][0];
    $phone = get($url . '/phone/' . $key . '?async', true);

    print_r($phone);

Регулярка правда каличная но я не стал исправлять, мну лень
 
Регулярка правда каличная но я не стал исправлять, мну лень
Огромное спасибо за решение и помощь! на удаленном сервере все работает! но на локалке нет:
Notice: Undefined offset: 0 in G:\home\test\www\phone.php on line 36
Проверил $content - тоже пустая.
 
Нужно смотреть. Возможно что-то с curl.
Попробуйте сделать var_dump(get('Для просмотра ссылки Войди или Зарегистрируйся
Посмотреть что выйдет.

Код:
Notice: Undefined offset: 0
Это типа не спарсило по патерну. а я там не проверял есть ли 0 елемент во 2 елементе.
Если туда будет попадать нормальный контент странички то такой ошибки не будет. Но проверку я бы добавил. К примеру при работе с проксями иногда прокся не рабочая показывает свою страничку, и дополнительно нужно проверять есть ли там нужный контент.
А данном случае если isset($matches[2][0]) то можно смело парсить json, если нет то смотреть что там (кэп).
 
Нужно смотреть. Возможно что-то с curl.
Попробуйте сделать var_dump(get('Для просмотра ссылки Войди или Зарегистрируйся
Посмотреть что выйдет.
Да, судя по-всему что-то с курлом:
Fatal error: Call to undefined function curl_inits() in
На удаленном сервере php5.2, на локалке 5.3, курл подключен.
 
Дело точно не в версии пыхи. Локально curl не подключен.
Как вы проверяете подключен ли он?
Через cli (коносль) или веб сервер запускается скрипт?
Какая система локально (win,*nix)?
Попробуйте
PHP:
var_dump(extension_loaded('curl'));
посмотреть.
 
Дело точно не в версии пыхи. Локально curl не подключен.
Как вы проверяете подключен ли он?
Через cli (коносль) или веб сервер запускается скрипт?
Какая система локально (win,*nix)?
Попробуйте
PHP:
var_dump(extension_loaded('curl'));
посмотреть.
var_dump(extension_loaded('curl')); выдает bool(true)

проверял через phpinfo();
В php.ini раскомментирован, в папке /ext/ php_curl.dll лежит.
Система win, пакет Denwer

Не работает именно на локальной машине, на денвере.
 
Ну тогда вряд ли помогу, вам сюда Для просмотра ссылки Войди или Зарегистрируйся
Я на win с RC 7рки не сижу и врядли подскажу возможные подводные камни.
Denwer вообще никогда не юзал, из известного Для просмотра ссылки Войди или Зарегистрируйся говорят норм.
 
Назад
Сверху