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 :: Нужна помощь в работе граббинга для доступа на сайт irr.ru

 PHP.SU

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


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

> Без описания
Rudolf
Отправлено: 27 Декабря, 2009 - 18:03:01
Post Id


Новичок


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


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




Проблема такого плана:
Произвожу загрузку объявлений с сайта irr.ru, но в последнее время при попытке подключиться никакие данные не загружаются.
есть ли метод доступа к сайту?
при использовании функции file ($URL);
выдает ошибку.
пс: с другими сайтами проблем нет
пример кода:
CODE (text):
скопировать код в буфер обмена
  1. <?php
  2. // Получить содержимое файла в виде массива. В данном примере мы используем
  3. // обращение по протоколу HTTP для получения HTML-кода с удаленного сервера.
  4. $lines = file('http://www.irr.ru/');
  5.  
  6. // Осуществим проход массива и выведем номера строк и их содержимое в виде HTML-кода.
  7. foreach ($lines as $line_num => $line) {
  8.     echo "Строка #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
  9. }
  10. ?>

(Отредактировано автором: 27 Декабря, 2009 - 18:10:11)

 
 Top
JustUserR
Отправлено: 27 Декабря, 2009 - 21:31:09
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




Rudolf пишет:
при использовании функции file ($URL); выдает ошибку.
Ну уже говорили много раз что не стоит для работы с удаленными ресурсами использовать file_popen - лучше делайте запорс напрямую с помощью CURL/sockets и передачей нужных параметров типа referer и cookie


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Rudolf
Отправлено: 27 Декабря, 2009 - 22:55:26
Post Id


Новичок


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


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




Все равно не могу понять, что происходит. Вот пример с использованием curl_init():


CODE (text):
скопировать код в буфер обмена
  1. <?
  2. function connect($link){    
  3.           $ch = curl_init();
  4.            curl_setopt($ch, CURLOPT_URL,$link);
  5.            curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
  6.            curl_setopt($ch, CURLOPT_TIMEOUT, 10);
  7.            curl_setopt($ch, CURLOPT_GET, 1);
  8.            curl_setopt($ch, CURLOPT_HEADER, 1);    
  9.            curl_setopt($ch, CURLOPT_COOKIE, $cookie);
  10.            $otvet = curl_exec($ch);
  11.            curl_close($ch);
  12. return $otvet;}
  13. $link = 'http://irr.ru/';
  14. $otvet=connect($link);
  15.  
  16. echo $otvet;
  17.  
  18. ?>
 
 Top
EuGen Администратор
Отправлено: 28 Декабря, 2009 - 11:08:04
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




И что в итоге?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
JustUserR
Отправлено: 28 Декабря, 2009 - 14:43:33
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




Rudolf Воперых то что вы переделали в виде CURL это уже похвально - потому что так гораздо проще разобраться в причинах неудачного соединения (Ибо popen скрывает ошибки)
Вовторых у вас не хочет открываться даже главная страница? Может быть тот сервер с которго вы отсылаете запрос забанен по какйто из причин? И что вообще в ответе - timeout или HTTP-ошибка какая?
Также вероятно что основной контент доступен не напрямую а заргужается через AJAX тогда вам надо парсить AJAX-код и делать вручную загрузку


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Rudolf
Отправлено: 28 Декабря, 2009 - 18:20:15
Post Id


Новичок


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


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




В итоге пустая страница у меня.

насчет забанен или нет, я этого не знаю, возможно...
а вот насчет AJAX - не правы. т.к. не целиком страница загружается ч/з AJAX.
а у кого-нибудь второй код работает?

(Отредактировано автором: 28 Декабря, 2009 - 18:21:46)

 
 Top
CenapaTop
Отправлено: 28 Декабря, 2009 - 18:59:33
Post Id



Частый гость


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


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




Cookie ему пошли.
 
 Top
Rudolf
Отправлено: 28 Декабря, 2009 - 21:30:32
Post Id


Новичок


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


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




Раньше с Cookie никогда не сталкивался. Основы про Cookie прочитал.
только возник вопрос, как их отправить и связать с запросом?
в общем добавил строчку:
curl_setopt($ch, CURLOPT_COOKIE, "sid=38446e3b3161b01f3716345ffec9f869");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

ЕЩЕ меня привлекает строчка:
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Location: https://login.pronto.ru/login?gateway=true&service=http://irr.ru/controllers/cas/auth.php

(Отредактировано автором: 28 Декабря, 2009 - 21:55:17)

 
 Top
CenapaTop
Отправлено: 28 Декабря, 2009 - 21:39:31
Post Id



Частый гость


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


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




PHP:
скопировать код в буфер обмена
  1. <?
  2. function connect($link, $cookie){    
  3.           $ch = curl_init();
  4.            curl_setopt($ch, CURLOPT_URL,$link);
  5.            curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
  6.            curl_setopt($ch, CURLOPT_TIMEOUT, 10);
  7.            curl_setopt($ch, CURLOPT_GET, 1);
  8.            curl_setopt($ch, CURLOPT_HEADER, 1);
  9.            curl_setopt($ch, CURLOPT_COOKIE, $cookie);
  10.            $otvet = curl_exec($ch);
  11.            curl_close($ch);
  12. return $otvet;}
  13. $link = "http://irr.ru";
  14. $cookie="sid=f5c228fa420be5fae46abf58f323036c; passportID=K8tn4aaSbTdNrN3pSIQ9wr1nFpK5cob%2FH4ltc4UQhLCe2grtAb1AameDuDwU157STgb2ileauCWoT22hLxcDgtQ178yEoPabNsxadkYo7PJi%2FHaWI7ARDtyrhoSB%2FAon";
  15. $otvet=connect($link, $cookie);
  16.  
  17. echo $otvet;
  18.  
  19. ?>
 
 Top
Rudolf
Отправлено: 28 Декабря, 2009 - 22:02:12
Post Id


Новичок


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


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




ок, отлично теперь работает!
Благодарю за помощь! Хорошо
 
 Top
Ammy
Отправлено: 29 Декабря, 2009 - 07:43:12
Post Id



Частый гость


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


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




Чтобы такие вопросы впредь не появлялись, анализируйте заголовки браузера, и стройте на этом свою программу.
 
 Top
Champion Супермодератор
Отправлено: 29 Декабря, 2009 - 08:55:13
Post Id



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


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


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




Ammy, я прочитал несколько твоих ответов и попрошу тебя больше так не писать. Твои ответы авторам вопросов никак не помогут: они почти бессмыслены и вряд ли понятны спрашивающему. Вот в данной теме ты думаешь, автору что-то говорит слово сокеты?

В общем, не надо писать, чтобы написать
 
 Top
JustUserR
Отправлено: 29 Декабря, 2009 - 14:52:26
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




Rudolf пишет:
А вот насчет AJAX - не правы. т.к. не целиком страница загружается ч/з AJAX.
Я не открывал исходный сайт а просто предположиол что если у автора отстутсвую данные а на странице они есть то вероятно они загружаются динамически - через iframe или AJAX к примеру
Если не загружается вообще ничего то см выше - номер ошибки так и не выяснили (Впрочем все оказалось как я и думал вначале Улыбка

PS Для аналаза заголовков можно использовать Proxymion или ему подобные утилиты

PPS Именно таким образом кстати желательно всегда дейтсвовать при разработке API с сервером

(Отредактировано автором: 29 Декабря, 2009 - 14:55:33)



-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Ammy
Отправлено: 30 Декабря, 2009 - 09:00:47
Post Id



Частый гость


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


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




Champion, какой писатель грабберов не анализирует заголовки, включая информацию о полученных с сервера cookie? Не мне говорить вам о том, что некоторые сервера смотрят за клиентами, проверяют на наличие того или иного (гашиша или марихуаны). Если клиент пьян, и не имеет удостоверения, его посылают за пределы в лучшем случае.. ыы

Цитата:
Твои ответы авторам вопросов никак не помогут: они почти бессмыслены и вряд ли понятны спрашивающему.


Если спрашивающему надо, то он обращается за помощью. Если он обращается за помощью, значит рассмотрит любые варианты помощи. Если в моих словах что-либо не понятно спрашивающему, он спросит, о чём это я, или посмотрит маны.

Вот, например, JustUserR про анализ заголовков сказал, выделил рецептики. Он тоже пишет, чтобы написать?

Если моё присутствие на данном форуме кажется вам ненужным, дайте знать об этом Подмигивание
 
 Top
Champion Супермодератор
Отправлено: 30 Декабря, 2009 - 11:07:15
Post Id



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


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


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




Ammy, ты ведь видишь уровень знаний спрашивающего. От одного упоминания слова сокеты он не полези в мануал и не сможет сформулировать вопрос тебе, чтобы уточнить, что ты имеешь в виду.
Ammy пишет:
анализируйте заголовки браузера, и стройте на этом свою программу.
Очень расплывчатая и бессмысленная фраза. Раз пишешь, то ссылки, примеры приводи
Ammy пишет:
Вот, например, JustUserR про анализ заголовков сказал, выделил рецептики.
.
Ammy пишет:
Он тоже пишет, чтобы написать?
Ну он любит поболтать Улыбка У него обычно по теме. Может быть, без примеров, но с избытком теории. И заметь, у него присутсвуют конкретные вопросы к автору и фигурируют названия функций в ответе.

Ладно проехали.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB