PHP.SU

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

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

> Найдено сообщений: 36
sinsir Отправлено: 30 Января, 2016 - 21:16:20 • Тема: Помогите пройти recaptcha • Форум: Работа с сетью

Ответов: 19
Просмотров: 4713
Ну для меня куки темень полная. Если б умел - то сделал бы. Но увы... От поэтому и задаю вопросы тут
sinsir Отправлено: 29 Января, 2016 - 14:46:33 • Тема: Помогите пройти recaptcha • Форум: Работа с сетью

Ответов: 19
Просмотров: 4713
Viper пишет:
PHP:
скопировать код в буфер обмена
  1. curl_setopt($curl, CURLOPT_HTTPHEADER, array("Cookie: test=cookie"));


А не могли б Вы в двух словах прокомментировать этот код?

Если нужно, вот ответ сервера на запрос

CODE (htmlphp):
скопировать код в буфер обмена
  1. [url] => http://hotline.ua/computer-noutbuki-netbuki/apple-macbook-pro-13-with-retina-display-mf839-2015/
  2.     [content_type] => text/html; charset=windows-1251
  3.     [http_code] => 200
  4.     [header_size] => 1997
  5.     [request_size] => 307
  6.     [filetime] => -1
  7.     [ssl_verify_result] => 0
  8.     [redirect_count] => 0
  9.     [total_time] => 4.431
  10.     [namelookup_time] => 0.032
  11.     [connect_time] => 0.063
  12.     [pretransfer_time] => 0.063
  13.     [size_upload] => 0
  14.     [size_download] => 47503
  15.     [speed_download] => 10720
  16.     [speed_upload] => 0
  17.     [download_content_length] => -1
  18.     [upload_content_length] => 0
  19.     [starttransfer_time] => 4.244
  20.     [redirect_time] => 0
  21.     [errno] => 0
  22.     [errmsg] =>
  23.     [content] => HTTP/1.1 200 OK
  24. Content-Type: text/html; charset=windows-1251
  25. Transfer-Encoding: chunked
  26. Connection: close
  27. Server: nginx
  28. Date: Fri, 29 Jan 2016 13:02:50 GMT
  29. Set-Cookie: hluniqueid_ctl=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/; domain=.hotline.ua
  30. Set-Cookie: hluniqueid=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/; domain=.hotline.ua
  31. Set-Cookie: hl_sid=6d6f47b0086545be661b7ad49d0bb8e9; expires=Sun, 28-Feb-2016 01:00:00 GMT; Max-Age=2548631; path=/; domain=.hotline.ua
  32. Set-Cookie: region=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/
  33. Set-Cookie: region_mode=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/
  34. Set-Cookie: region=1; expires=Sat, 30-Jan-2016 13:02:50 GMT; Max-Age=86400; path=/; domain=.hotline.ua
  35. Set-Cookie: city_id=187; expires=Sat, 30-Jan-2016 13:02:50 GMT; Max-Age=86400; path=/; domain=.hotline.ua
  36. Set-Cookie: region_mode=1; expires=Sat, 30-Jan-2016 13:02:50 GMT; Max-Age=86400; path=/; domain=.hotline.ua
  37. Set-Cookie: currency=uah; expires=Sat, 30-Jan-2016 13:02:50 GMT; Max-Age=86400; path=/; domain=.hotline.ua
  38. Set-Cookie: recent_visited_=a%3A1%3A%7Bi%3A0%3Bi%3A3826666%3B%7D; expires=Sun, 28-Feb-2016 13:02:50 GMT; Max-Age=2592000; path=/; domain=.hotline.ua
  39. Set-Cookie: PHPSESSID=c09cd38383ca9ab76a221c76669b9ccc; path=/; domain=.hotline.ua
  40. Set-Cookie: PHPSESSID=74588eba6cbe9c9d89ada0fb50255098; path=/; domain=.hotline.ua
  41. Set-Cookie: PHPSESSID=e29e0dc8f164d1159ba13198c6846081; path=/; domain=.hotline.ua
  42. Set-Cookie: PHPSESSID=3b9cb8459314e5bdd52c7a2519aa1a3e; path=/; domain=.hotline.ua
  43. Content-Encoding: gzip
  44. Vary: Accept-Encoding
  45. Expires: Thu, 01 Jan 1970 00:00:01 GMT
  46. Cache-Control: no-cache
  47. MiCGI-Switch: 1 0
  48. MiCGI-TproxyInfo: 134.249.168.16:80
  49. MiCGI-Upstream: hotline.ua
  50. MiCGI-Client-Ip: 94.45.59.102
  51. MiCGI-Host: hotline.ua
  52. MiCGI-Http-Host: hotline.ua
  53. MiCGI-Server-Ip: 134.249.168.16
  54. MiCGI-Server-Port: 80
  55. MiCGI-Status: AUTOPROXY
  56. MiCGI-Preload: no


Насколько я понимаю, тут первая часть куков удаляет старые записи и указывает новую запись о регионе, городе и типе валюты и ид сессии и срок на три дня. И потом пытается это спросить, а если нету ответа то выпадает капча.
sinsir Отправлено: 29 Января, 2016 - 10:31:15 • Тема: Помогите пройти recaptcha • Форум: Работа с сетью

Ответов: 19
Просмотров: 4713
В общем работу через прокси наладил, и даже какое-то время это работало. Но теперь, в алгоритме, видимо что-то изменилось, и сервер дает зайти только один раз в три дня, а потом, видимо, присылает куку. А вот куки для такого ламера как я совсем непреодолимая задача Огорчение
Помогите отослать обратно ответ серверу с куками, кому не сложно.
sinsir Отправлено: 29 Ноября, 2015 - 12:23:10 • Тема: Помогите пройти recaptcha • Форум: Работа с сетью

Ответов: 19
Просмотров: 4713
Через прокси почему-то не получается. Возвращается ошибка 404 (страница не найдена)

Цитата:
//HTTP/1.1 404 Not Found Date: Sun, 29 Nov 2015 10:21:23 GMT Server: Apache/2.2.22 (Ubuntu) Vary: Accept-Encoding Content-Length: 329 Content-Type: text/html; charset=iso-8859-1
Not Found

The requested URL /mobile-mobilnye-telefony-i-smartfony/apple-iphone-5-16gb-white/' was not found on this server.


Делал так:

PHP:
скопировать код в буфер обмена
  1.  
  2. $link = 'http://hotline.ua/mobile-mobilnye-telefony-i-smartfony/apple-iphone-5-16gb-white/';
  3. $proxy = '91.212.124.153:80';
  4.             curl_setopt($curl, CURLOPT_URL, $link);    
  5.             curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208');
  6.             curl_setopt($curl, CURLOPT_HEADER,1);
  7.             curl_setopt($curl, CURLOPT_PROXY, $proxy);
  8.             curl_setopt($curl, CURLOPT_TIMEOUT, 2);
  9.             curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //return the transfer as a string
  10.             curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
  11.            $out = curl_exec($curl);
  12.            $out = iconv('cp1251','utf-8', $out);
  13.            curl_close($curl);
  14.            echo $out;
  15.  


Похоже на то, что возвращается страница прокси вместо той, что мне нужно Огорчение
sinsir Отправлено: 27 Ноября, 2015 - 14:22:39 • Тема: Помогите пройти recaptcha • Форум: Работа с сетью

Ответов: 19
Просмотров: 4713
Это я взял из файла my_cookies.txt, который создается из запроса CURLOPT_COOKIEJAR

В первом посте я привел распечатку этого файла

А вообще я ее вписал "от фонаря" сюда. Думал может пройдет Закатив глазки
sinsir Отправлено: 27 Ноября, 2015 - 14:11:37 • Тема: Помогите пройти recaptcha • Форум: Работа с сетью

Ответов: 19
Просмотров: 4713
botmaster2000 пишет:
В контексте данного вопроса было бы полезно ознакомиться с кодом парсера


CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. if( $curl = curl_init() )
  3.                  {     
  4.                         $cookie_path = '../../../../domains/localhost/r2d2/r2d2.ua/www/parser/'; // для локалки
  5.                         $cookie_path = 'r2d2.ua/'; // для сервака
  6.                         $cookie_name = $cookie_path."my_cookies.txt";
  7.                         curl_setopt ($curl, CURLOPT_URL, $link);
  8.                         curl_setopt($curl, CURLOPT_HEADER,1);
  9.                         curl_setopt ($curl, CURLOPT_RETURNTRANSFER, true);
  10.                         curl_setopt ($curl, CURLOPT_CONNECTTIMEOUT, 30);
  11.                         curl_setopt ($curl, CURLOPT_SSL_VERIFYPEER, false);
  12.                         curl_setopt ($curl, CURLOPT_SSL_VERIFYHOST, false);
  13.                         curl_setopt ($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7");
  14.                         //curl_setopt ($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
  15.                         curl_setopt ($curl, CURLOPT_VERBOSE,1);
  16.                         curl_setopt ($curl, CURLOPT_COOKIEJAR, $cookie_name);  
  17.                         curl_setopt ($curl, CURLOPT_COOKIEFILE, $cookie_name);
  18.                         curl_setopt ($curl, CURLOPT_COOKIE, 'hl_sid=e247f89beb97ccba6e37d95ed0340e70;hotline.uauid=1059700411335970926');
  19.  
  20.                         $out = curl_exec($curl);
  21.                         $out = iconv('cp1251','utf-8', $out);
  22.                         curl_close($curl);
  23.                        
  24.                         echo $out;
  25. }
  26.  


По-сути нужно просто получить одну страничку и добавить с нее данные в базу. Как я уже писал ранее, парсер работает в ручном режиме, то-есть запускается пару раз в неделю. То-есть создает нагрузку на сервер не более чем человек.
sinsir Отправлено: 27 Ноября, 2015 - 13:08:02 • Тема: Помогите пройти recaptcha • Форум: Работа с сетью

Ответов: 19
Просмотров: 4713
OrmaJever пишет:
sinsir пишет:
И все же, как ее обойти?

Всё зависит от причин её появления.
Если она появляется только на определёных адерсах - то юзать прокси
Если от от частых запросов - то делать слип между запросами
Всё зависит от обствоятельст


Это не автоматический парсер, юзается в ручном режиме несколько раз в неделю. Не думаю что создает какую-то заметную нагрузку на сервер. Скорее бан на диапазон адресов. В общем-то так написано в сообщении от сервера, которое приходит вместе с капчей.
sinsir Отправлено: 27 Ноября, 2015 - 11:44:55 • Тема: Помогите пройти recaptcha • Форум: Работа с сетью

Ответов: 19
Просмотров: 4713
Viper пишет:
sinsir пишет:
Я имел ввиду, что капча приходит не всем. Видимо только на определенный диапазон айпиадресов или еще по какому-то признаку выдается. То-есть с локалки я могу нормально использовать этот парсер, а вот с хостинга немогу.

вы не поняли. С локалки у вас будет ваш внешний IP, а IP хостера у них может быть в черном списке. Думаю вывод очевиден.


Видимо очевиден, но не для всех Улыбка

И все же, как ее обойти?
Мне кажется тут возможны 2 варианта:
1. Заставить капчу нормально отобразиться, и потом просто клацнуть по ней мышкой.
2. Парсить через прокси, чтобы скрыть реальный адрес.
sinsir Отправлено: 27 Ноября, 2015 - 10:59:01 • Тема: Помогите пройти recaptcha • Форум: Работа с сетью

Ответов: 19
Просмотров: 4713
Viper пишет:
sinsir пишет:
Вот на локальной версии она не показывается вообще.
это не означает что сайт работает как надо.


Я имел ввиду, что капча приходит не всем. Видимо только на определенный диапазон айпиадресов или еще по какому-то признаку выдается. То-есть с локалки я могу нормально использовать этот парсер, а вот с хостинга немогу.

Не знаю как это исправить Огорчение
sinsir Отправлено: 26 Ноября, 2015 - 12:49:18 • Тема: Помогите пройти recaptcha • Форум: Работа с сетью

Ответов: 19
Просмотров: 4713
Viper пишет:
Дело в том, что вам могут показывать капчу, а куками вы текст с картинки не введете.
Выхода 2.
1. Пользоваться проксями
2. Правильно отправлять запросы на сайт.


Таки да. Показывается капча (точнее пытается показываться, но там какая-то ошибка вылазит и я не могу на нее клацнуть мышкой)

По сути там нужно один раз клацнуть мышкой чтобы подтвердить страну или регион. Потом капча не показывается.
Вот на локальной версии она не показывается вообще.
sinsir Отправлено: 25 Ноября, 2015 - 16:19:06 • Тема: Помогите пройти recaptcha • Форум: Работа с сетью

Ответов: 19
Просмотров: 4713
хм Хм то ли задача непреодолимая, то ли не интересная ...
sinsir Отправлено: 24 Ноября, 2015 - 12:59:15 • Тема: Помогите пройти recaptcha • Форум: Работа с сетью

Ответов: 19
Просмотров: 4713
Есть парсер товаров с hotline.ua
Отлично работает с локалки, а вот с хостнга перестал работать на днях. Появился такой текст

"В связи с возросшей активностью нежелательных ботов на Hotline
с зарубежных IP-адресов, пожалуйста, подтвердите, что вы не являетесь таковым.
"

Как я понял нужно отдать через cURL какие-то куки.
Вопрос как определить какие?

Пробовал вот так
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. curl_setopt ($curl, CURLOPT_URL, $link);
  3.                         curl_setopt($curl, CURLOPT_HEADER,1);
  4.                         curl_setopt ($curl, CURLOPT_RETURNTRANSFER, true);
  5.                         curl_setopt ($curl, CURLOPT_CONNECTTIMEOUT, 30);
  6.                         curl_setopt ($curl, CURLOPT_SSL_VERIFYPEER, false);
  7.                         curl_setopt ($curl, CURLOPT_SSL_VERIFYHOST, false);
  8.                         curl_setopt ($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7");
  9.                         //curl_setopt ($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
  10.                         curl_setopt ($curl, CURLOPT_VERBOSE,1);
  11.                         curl_setopt ($curl, CURLOPT_COOKIEJAR, $cookie_name);  
  12.                         curl_setopt ($curl, CURLOPT_COOKIEFILE, $cookie_name);
  13.                         curl_setopt ($curl, CURLOPT_COOKIE, 'hl_sid=e247f89beb97ccba6e37d95ed0340e70;hotline.uauid=1059700411335970926');
  14.  


Вот что возвращается в куках на локалке
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. # Netscape HTTP Cookie File
  3. # http://curl.haxx.se/rfc/cookie_spec.html
  4. # This file was generated by libcurl! Edit at your own risk.
  5.  
  6. .hotline.ua     TRUE    /       FALSE   1448360985      hluniqueid_ctl  deleted
  7. .hotline.ua     TRUE    /       FALSE   1448360985      hluniqueid      deleted
  8. .hotline.ua     TRUE    /       FALSE   1450918799      hl_sid  e247f89beb97ccba6e37d95ed0340e70
  9. .hotline.ua     TRUE    /       FALSE   1448447385      region  1
  10. .hotline.ua     TRUE    /       FALSE   1448447385      region_mode     1
  11. .hotline.ua     TRUE    /       FALSE   1448447385      city_id 187
  12. .hotline.ua     TRUE    /       FALSE   1448447385      currency        uah
  13. .hotline.ua     TRUE    /       FALSE   0       PHPSESSID       9e5af9243e49a5ef63b1374f35473299
  14. .hotline.ua     TRUE    /       FALSE   1450952985      recent_visited_ a%3A1%3A%7Bi%3A0%3Bi%3A567929%3B%7D
  15.  
sinsir Отправлено: 07 Мая, 2012 - 00:17:43 • Тема: Суррогатные пары UTF • Форум: Кодировки и все смежное

Ответов: 0
Просмотров: 1092
Помогите преобразовать строку:
xE0 x90 x91 xE0 x90 xB5 xE0 x90 xBB xE0 x91 x8C xE0 x90 xB3 xE0 x90 xB8 xE0 x90 xB5 xE0 x91 x86
Судя по виду это суррогатные пары трехбайтной кодировки.
Как сделать чтобы они отображались в браузере не в виде пустых квадратов а в виде символов?
sinsir Отправлено: 09 Апреля, 2012 - 15:46:50 • Тема: Бинарный таймер • Форум: Работа с сетью

Ответов: 14
Просмотров: 2480
Что ж , в таком случае, хочу выразить свою благодарность на словах.
Спасибо за то, что помогаете таким новичкам как я, разбираться в тонкостях программирования.
Надеюсь Вам доставило такое же удовольствие как и мне решение этой , неразрешимой для меня, и кажется элементарной для Вас, задачи. Здорово
sinsir Отправлено: 09 Апреля, 2012 - 15:09:04 • Тема: Бинарный таймер • Форум: Работа с сетью

Ответов: 14
Просмотров: 2480
Ура! Кажется дело близится к развязке. Число , как я и догадывался, оказалось числом с плавающей запятой.
Ваша ссылка на конвертер из бинарников в числа с плавающей запятой (да и не только в них) многое прояснила.
+ Вам, и огромное спасибо. ( а то я уже с ума начал сходить Ха-ха )
Теперь осталось всего 2 нерешенные позиции в этом пакете. Одна из них состоит из 5 байт , 4 последних из них постоянно изменяются. Думаю это может быть, как Вы заметили в прошлых постах, какой-то идентификатор пакета, либо же показатель пинга (этот показатель тоже есть).
Но эту задачу постараюсь решить самостоятельно. Улыбка

P.S. Блин немогу плюсануть Вам. Сказано , что у меня недостаточно сообщений для этого. Подскажите что делать?

Страниц (3): [1] 2 3 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB