Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Граббер страницы с другого сайта

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6

Открыть новую тему     Написать ответ в эту тему

vworld



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
у всех моих знакомых программеров есть определенные сложности сграббить странички и сложить их в файл тхт есть предложения делать на Дельфях, а на пхп что то со скрипом идет

Всего записей: 2617 | Зарегистр. 13-02-2003 | Отправлено: 10:27 06-04-2006
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vworld

Цитата:
у всех моих знакомых программеров есть определенные сложности сграббить странички и сложить их в файл тхт  есть предложения делать на Дельфях, а на пхп что то со скрипом идет  

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

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 19:43 06-04-2006
vworld



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вероятно забанен IP
тогда еще вопрос, как автоматизировать, чтобы скрипт сам бежал по страничкам и складывал пройденные в тхт файл?

Всего записей: 2617 | Зарегистр. 13-02-2003 | Отправлено: 07:14 07-04-2006
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vworld

Цитата:
тогда еще вопрос, как автоматизировать, чтобы скрипт сам бежал по страничкам и складывал пройденные в тхт файл?

ну тебе уже все разжевали.. такие элементарные вещи мог бы и сам посмотреть в учебнике.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 07:37 07-04-2006
vworld



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery

Цитата:
акие элементарные вещи

для меня это не элементарные вещи...

Всего записей: 2617 | Зарегистр. 13-02-2003 | Отправлено: 08:11 07-04-2006
v7r



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
[deleted]

Всего записей: 148 | Зарегистр. 24-11-2004 | Отправлено: 19:32 27-07-2006 | Исправлено: v7r, 20:08 27-07-2006
v7r



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, пожалуйста!
Есть код:

Код:
#!/usr/bin/perl
 
use LWP 5.805;
 
#User-Agen Settings
my $ua = LWP::UserAgent->new;
push @{ $ua->requests_redirectable }, 'POST';
 
#GetUrl Function
sub geturl
{
my $response = $ua->get($URL);
 
if ($response->is_success) {
    $source=$response->content;
}
else {
    $source=$response->status_line;
}
};
 
#PostUrl Function
sub posturl
{
my $response = $ua->post($URL, %form);
 
if ($response->is_success) {
    $source=$response->content;
}
else {
    $source=$response->status_line;
}
};
 
# *********** MAIN PROGRAM HERE ***********
open(OUT,">log.html");
$URL='http://www4.nm.ru/cgi-bin/denlogin.cgi';
%form=(
'login' => 'smlgn',
'client' => 'nm.ru',
'passwd' => 'smlgn'
);
posturl();
print OUT $source;
close(OUT);

Он эквивалентен такой форме:

Код:
<form action="http://www4.nm.ru/cgi-bin/denlogin.cgi" method="post">
<input type="text" name="login" value="smlgn">
<input type="text" name="passwd" value="smlgn">
<input type="text" name="client" value="nm.ru">
<input type="submit" value="go">
</form>

Но форма работает (в браузере ), а код пишет

Цитата:
500 Can't connect to :80 (Bad hostname '')

Вобщем, что-то с редиректом. Никак не пойму.
Платформа -  cygwin, perl 5.8.6, lwp 5.805.

Всего записей: 148 | Зарегистр. 24-11-2004 | Отправлено: 15:32 12-08-2006 | Исправлено: v7r, 21:39 13-08-2006
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Никак не пойму.

сказано же..

Цитата:
Bad hostname '')  

пустой параметр host при http запросе

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 17:18 12-08-2006
v7r



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
И? Где копать? Как это исправить? Ведь до того, как posturl() вызывается, $URL определяется явно.
И еще: без добавления строки push @{ $ua->requests_redirectable }, 'POST', скрипт выдает error 302.

Всего записей: 148 | Зарегистр. 24-11-2004 | Отправлено: 21:38 13-08-2006
v7r



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Эй! Есть кто живой?

Всего записей: 148 | Зарегистр. 24-11-2004 | Отправлено: 15:08 20-08-2006 | Исправлено: v7r, 15:09 20-08-2006
alpha6

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Во первых выходные
Во вторых - за адрес хоста у тебя отвечает переменная $URL - ее и копай
В третьих - если зайти по ссылке в твоем коде - сервер грит, что такой страницы нет;)

Всего записей: 59 | Зарегистр. 10-09-2005 | Отправлено: 15:26 20-08-2006
v7r



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alpha6
Во-первых, вопрос висит с _прошлого_ воскресенья. Вся неделя - выходные?
Во-вторых, $URL "пустеет" после редиректа. До этого он задан явно.
В-третьих, запрос происходит следующим образом:
 
Time Duration Method Status ContentType URL Note Redirect To
20:22:49.781 63 ms POST 302 text/html; charset=iso-8859-1 http://www4.nm.ru/cgi-bin/denlogin.cgi Новая Почта http://www.nm.ru/cgi-bin/denlogin.cgi?id={cutted}&DENEXEC_URL=http{cutted}
20:22:50.156 62 ms GET 302 text/html; charset=iso-8859-1 http://www.nm.ru/cgi-bin/denlogin.cgi?id={cutted}&DENEXEC_URL=http{cutted} Новая Почта http://www4.nm.ru/users/?session_id={cutted}    
20:22:50.265 438 ms GET 200 text/html; charset=windows-1251 http://www4.nm.ru/users/?session_id={cutted} Новая Почта

 
Вроде все расшифровал... Если не понятно, могу уточнить.
 
Какие будут еще предложения?

Всего записей: 148 | Зарегистр. 24-11-2004 | Отправлено: 20:27 20-08-2006 | Исправлено: v7r, 20:42 20-08-2006
alpha6

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
v7r
А если в вызове скрипта передавать параметры как в форме? Что происходит?
 
Добавлено:
Ой, мамочки, что это?
 
Добавлено:
А что это за таинственные надписи в таблице?

Всего записей: 59 | Зарегистр. 10-09-2005 | Отправлено: 20:32 20-08-2006
v7r



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alpha6
Это - лог IEWatch.
Значит, так: браузер POSTит информацию на hzzp://www4.nm.ru/cgi-bin/denlogin.cgi, ему выдают error 302 и "пинают" на hzzp://www.nm.ru/cgi-bin/denlogin.cgi?id={cutted}&DENEXEC_URL=http{cutted}, там тоже 302, но редирект на hzzp://www4.nm.ru/users/?session_id={cutted}. В результате пользователь видит эту самую (последнюю) страницу. У нее статус 200 - ОК. Так вот скрипт, видимо, эти самые редиректы не переваривает...
 
ЗЫ: http заменил на hzzp, чтобы форум не подсвечивал.

Всего записей: 148 | Зарегистр. 24-11-2004 | Отправлено: 21:25 20-08-2006 | Исправлено: v7r, 21:26 20-08-2006
alpha6

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Дай плиз ссылочку на форму в нете, а то я что-то на сайте не сообразил кто там из них кто

Всего записей: 59 | Зарегистр. 10-09-2005 | Отправлено: 21:57 20-08-2006
Brodyaga



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ну так используй cURL, он понимает редиректы, или сам их расшифровывай, ничего сложного в обработке 1 строки нету.

----------
Damn Metal

Всего записей: 2713 | Зарегистр. 07-01-2006 | Отправлено: 23:11 20-08-2006
v7r



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alpha6
Форма торчит на http://www.nm.ru/
Но! Если взять текстовый документ (ren -> *.html) и набить туда форму из моего первого поста:

Код:
<form action="http://www4.nm.ru/cgi-bin/denlogin.cgi" method="post">
<input type="text" name="login" value="smlgn">
<input type="text" name="passwd" value="smlgn">
<input type="text" name="client" value="nm.ru">
<input type="submit" value="go">
</form>

(open -> click "go")
То результат - такой же... ничего лишнего. А скрипт не работает.
Brodyaga
Так... а насчет расшифровки - поподробней, пожалуйста. Ткните хоть в документ, а то я порылся в CPANе - и ничего по этому поводу не нашел... Может, плохо искал...

Всего записей: 148 | Зарегистр. 24-11-2004 | Отправлено: 23:14 20-08-2006 | Исправлено: v7r, 23:17 20-08-2006
alpha6

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
v7r
ак... а насчет расшифровки - поподробней, пожалуйста. Ткните хоть в документ, а то я порылся в CPANе - и ничего по этому поводу не нашел...  Может, плохо искал...
Дык эта:
if ($status_page == 302 ) {$url = $redirect_url}
 
Вобщем что-то в таком духе Ну там естественно сначала должна быть разбиралка того, что сервер говорит

Всего записей: 59 | Зарегистр. 10-09-2005 | Отправлено: 19:51 21-08-2006
Crypton



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте, нужен грабер, чтобы со страницы _http://subcontract.ru/BusinessOffers/BOfferList.html забирать всю таблицу с предложениями (начиная от первого предложения, заканчивая счетчиком "Всего ..... предложения" на php. При этом чтобы оставалась возможность переходить по страницам этих предложений на том сайте, на который будет все это грабиться. Я не программер, поэтому все мои попытки чё-нить сварганить по приведенным здесь примерам не увенчались успехом. Заранея спасибо за помощь

Всего записей: 112 | Зарегистр. 31-03-2003 | Отправлено: 09:22 26-08-2006
Vasya Pupkin



Мракобес
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
День добрый. Меня интересует несколько другой граббер. Чтобы при заходе на свой сервер я вводил адрес запрашиваемого сайта, он грабил его и показывал с моего сервера. Делается это по причине блокировки доступа к определенным сайтам. Один скрипт нашел, но он не совсем для меня. Показывает только одну страничку. Дальше по ссылкам прыгать не хочет. Не переделывает

----------
я не люблю людей

Всего записей: 7070 | Зарегистр. 24-02-2001 | Отправлено: 14:17 09-07-2007
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6

Компьютерный форум Ru.Board » Интернет » Web-программирование » Граббер страницы с другого сайта


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru