Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Скрипт, получающий с сервера скрытый номер

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Отправить PHPSESSID, получить ответ. КАК?
palchik1985
Отправлено: 15 Сентября, 2014 - 00:49:07
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Сент. 2014  


Помог: 0 раз(а)




Подскажите плз, как решить. Сделал парсер объявления, не могу написать скрипт, который парсит скрытый номер телефона.
Пример объявления:
http://kiev[dot]ko[dot]slando[dot]ua/obyavle[dot][dot][dot]nko-IDaySdZ[dot]html

Номер телефона по умолчанию скрыт.
При нажатии на кнопку "Показать" - выполняется JS, который отсылает PHPSESSID и ID объявления, в ответе приходит номер телефона.
Есть переменные $id и $phpsessid, не могу никак придумать, как написать скрипт получающий номер телефона.

Вижу 2 варианта - либо написать скрипт, либо взять JS c сайта и прикрутить его. Но как реализовать на практике любой из вариантов - не пойму. Подскажите хотя бы, куда копать - бьюсь уже второй день.

(Отредактировано автором: 15 Сентября, 2014 - 03:05:24)

 
 Top
IllusionMH
Отправлено: 15 Сентября, 2014 - 03:00:40
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




palchik1985, прочтите мануал по cURL функциям в пхп. судя по первому посту - даже базовые примеры из доки помогут.
 
 Top
palchik1985
Отправлено: 15 Сентября, 2014 - 04:25:41
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Сент. 2014  


Помог: 0 раз(а)




Ну я с помощью CURL и получаю содержимое страницы. На самом деле все работало, но сейчас изменился алгоритм получения номера телефона.

Вот функция CURL:

PHP:
скопировать код в буфер обмена
  1. function getPage($params) {
  2.         if(!$params['url']) return 0;
  3.        
  4.         $params['method']=($params['method'])?$params['method']:'get';
  5.        
  6.         $headers=array(
  7.             'Accept-Language' => 'en-us;q=0.7,en;q=0.3',
  8.         );
  9.         if($params['headers']) {
  10.             foreach($params['headers'] as $k=>$v) {
  11.                 $headers[$k]=$v;
  12.             }
  13.         }
  14.        
  15.         $useragent=($params['useragent'])?$params['useragent']:'"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0 FirePHP/0.7.1"';
  16.        
  17.         if($params['method']=='get' && $params['params']) {
  18.             $ar=array();
  19.             foreach($params['params'] as $k=>$v) {
  20.                 array_push($ar, "$k=$v");
  21.             }
  22.             $url.="?".join('&', $ar);
  23.         }
  24.        
  25.         $referer=($params['referer'])?$params['referer']:$params['url'];
  26.        
  27.         $ch=curl_init();
  28.        
  29.         curl_setopt ($ch, CURLOPT_URL, $params['url']);
  30.         curl_setopt ($ch, CURLOPT_HTTPHEADER, $headers);
  31.         curl_setopt ($ch, CURLOPT_USERAGENT, $useragent);
  32.         //curl_setopt($ch, CURLOPT_COOKIESESSION, true); //раскоммент этой строки ничего не меняет
  33.         curl_setopt($ch, CURLOPT_COOKIEJAR, dirname($_SERVER['SCRIPT_FILENAME'])."/data/cookies.txt");
  34.         curl_setopt($ch, CURLOPT_COOKIEFILE, dirname($_SERVER['SCRIPT_FILENAME'])."/data/cookies.txt");
  35.         if($params['cookie']) {
  36.             curl_setopt($ch, CURLOPT_COOKIE, $params['cookie']);
  37.         }
  38.         curl_setopt ($ch, CURLOPT_REFERER, $referer);
  39.         curl_setopt ($ch, CURLOPT_HEADER, ($params['need_headers'])?1:0);
  40.         curl_setopt ($ch, CURLOPT_NOBODY, ($params['no_body'])?1:0);
  41.         curl_setopt ($ch, CURLOPT_FAILONERROR, 1);
  42.         curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, ($params['dont_follow_location'])?0:1);
  43.        
  44.         if($params['ip']) {
  45.             curl_setopt ($ch, CURLOPT_INTERFACE, $params['ip']);
  46.         }
  47.        
  48.         curl_setopt ($ch, CURLOPT_RETURNTRANSFER,1);
  49.         curl_setopt ($ch, CURLOPT_TIMEOUT, ($params['timeout'])?$params['timeout']:30);
  50.         if($params['proxy']) {
  51.             curl_setopt($ch, CURLOPT_PROXY, $params['proxy']);
  52.         }
  53.         if($params['method']=='post') {
  54.             curl_setopt ($ch, CURLOPT_POST, 1);
  55.             curl_setopt($ch, CURLOPT_POSTFIELDS, $params['params']);
  56.         }
  57.         if($params['file']) {
  58.             curl_setopt ($ch, CURLOPT_FILE, $params['file']);
  59.         }
  60.        
  61.         if($params['download_file']) {
  62.             $fl=fopen($params['download_file'], "wb");
  63.             curl_setopt ($ch, CURLOPT_FILE, $fl);
  64.         }
  65.        
  66.         $result = curl_exec($ch);
  67.        
  68.        
  69.         curl_close($ch);
  70.        
  71.         if($params['download_file']) {
  72.             fclose($fl);
  73.             return $params['download_file'];
  74.         } else {
  75.             return $result;
  76.         }
  77.     }


Содержимое страницы с помощью этой функции прекрасно получается.
Далее я попытался посмотреть, что отправляется и на какой адрес, подставил эти данные чтоб получить номер, но функция возвращает пустой массив.

Вот код:

PHP:
скопировать код в буфер обмена
  1. $url="http://1032155592.log.optimizely.com/event?a=1032155592&d=572110902&y=false&s1033243617=none&s1039805884=false&s1044912896=direct&s1099920464=gc&n=engagement&g=1065653943&u=oeu1410742393979r0.9096982502378523&wxhr=true&t=1410743311682&f=";
  2.  
  3. $referer="http://kiev.ko.olx.ua/obyavlenie/uyutnaya-3-h-k-kvartira-chokolovskiy-bulvar-19-IDay25R.html";
  4.  
  5. $params=array
  6. (
  7.     'url' => $url,
  8.     'referer' => $referer
  9. );
  10.  
  11. $result=getPage($params);


$result возвращает пустой массив

(Отредактировано автором: 15 Сентября, 2014 - 14:41:40)

 
 Top
palchik1985
Отправлено: 16 Сентября, 2014 - 00:34:04
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Сент. 2014  


Помог: 0 раз(а)




Предварительно найдено решение - парсить с мобильной версии, там простая ссылка на страничку с номером
 
 Top
juramaj
Отправлено: 23 Апреля, 2015 - 22:26:30
Post Id


Гость


Покинул форум
Сообщений всего: 98
Дата рег-ции: Дек. 2014  


Помог: 0 раз(а)




Привет всем! Наткнулся на данную тему, и стало интересно: получилось как то спарсить номера или все таки нет. Если да то каким образом?
 
 Top
LIME
Отправлено: 23 Апреля, 2015 - 22:29:17
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




juramaj выше сказали как
(Добавление)
но всеравно это долго
 
 Top
juramaj
Отправлено: 23 Апреля, 2015 - 22:34:13
Post Id


Гость


Покинул форум
Сообщений всего: 98
Дата рег-ции: Дек. 2014  


Помог: 0 раз(а)




А может как то имитировать нажатие кнопки мыши на слове "показать" и потом curlom все слизать. Как думаете такое возможно?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB