| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: разработка для Web > Отображение в скрипте |
| Автор: Grig 17.7.2006, 16:16 | ||||
| Здравствуйте! я захожу на сайт скриптом: http://autosunrise.ru/cgi-bin/content.pl
Специально прописываю так:
Но при его запуске, он не отображает рисунки, а они мне позарез нужны!! Видать сервер их как-то хитро блочит. Скажите как можно прикинутся, чтобы обойти эту беду? Еще я много раз читал про то, что народ каким-то образом парсит ответ от сервера, может объясните мне как это сделать? Заранее большое спасибо!! |
| Автор: Nab 17.7.2006, 16:51 |
| Рисунки отображает браузер, а не скрипт А вы запросили эти рисунки? В документе который Вы запросили скорее всего ссылки на рисунки. Вам нужно их выдернуть оттуда и закачать каждую картинку отдельным запросом. HTML же в первом приближении графику содержать не может. Accept означает всего лишь что ваш агент умеет работать с рисунками, и при их наличии они будут пересылаться если вы их запросите. К примеру текстовые броузеры типа links lynx и т.д. не имеют такой возможности и в строке accept не содержат перечисления графических типов файлов. Иногда это указание серверному скрипту, чтобы он генерировал страницу без дизайнерских включений графики, конечно если он это умеет.... |
| Автор: Nab 17.7.2006, 19:58 | ||
Это ответ сервера Где у Вас указано что это картинка... скорее всего оно обрабатывается как текст И вона еще одна ошибочка в 3 строке Добавлено @ 20:00 Да и вообще заголовок сильно неправильный, того чего нужно нет, а чего не нужно так валом Длины сообщения и типа не хватает как минимум... |
| Автор: nitr 17.7.2006, 23:23 |
| а ещё картинка бинарный файлик ;) пример: binmode(FILEHANDLE); |
| Автор: Grig 23.7.2006, 12:54 | ||||
| Nab, а каким должен быть ответ сервера, чтобы он позволял видеть картинки? nitr, к сожалению, не все так просто. Картинки которые мне нужны не имеют статичного адреса. Их, блин, тоже как-то зашифровывают (( Вот например, мне нужны картинки с этого адреса:
Которые я пытаюсь получить таким образом:
Хотя бы отобразить их... Подозреваю, что надо как-то обмануть сервер, поэтому и спрашиваю, что еще надо прописать в заголовок.... Помогите, пожалуйста!!! |
| Автор: Nab 23.7.2006, 13:11 | ||||
| А почему бы Вам не проанализировать заголовок который отдает сервер, с которого Вы берете картинку. Ведь там вполне корректные заголовки, вот можно их запросто подставить в свой скрипт. А по поводу binmode, то что мешеает выходной поток перевести в бинарный ежим?
Добавлено @ 13:19 Вот корректный заголовок с вашего сервера:
Добавлено @ 13:20 там две части та что cmd> это мой запрос Вас интересует только hdr> |
| Автор: Grig 23.7.2006, 13:58 | ||||
Возвращает с помощью такого скрипта:
вот это:
Каким образом можно добавить в этот заголовок нужные записи и убрать ненужные? Ссылка на многострадальческий скрипт: http://autosunrise.ru/cgi-bin/content.pl |
| Автор: Nab 23.7.2006, 14:10 |
| блин, ниче не понял Это ссылка на страницу, а не на картинку.... и заголовок вполне корректный. что нужно то? |
| Автор: Grig 23.7.2006, 14:17 |
| это ссылка не на страницу, а на скрипт который выкачивает эту страницу. Вот, например, http://autosunrise.ru/content.txt Надо, чтобы скрипт загружал мне эту страничку с картинками.. Конечно в конечном итоге, мне надо, чтобы скрипт сохранял изображения, но пока хотя бы так.. |
| Автор: Nab 23.7.2006, 14:29 |
| Блин, прикалуетесь? Объясняю на пальцах: Броузер когда его просят открыть страницу, сначала ее закачивает одним запросом... Потом проанализировав страничку, видит что на ней есть тег IMG берет его src и запрашивает эту картинку, еще одним отдельным запросом. И только потом ее отображает. Прочитайте я писал про текстовые броузеры раньше, которые не работая с графикой, не запрашивают картинок. В одном документе html НЕЛЬЗЯ сразу отдать и картинку и страничку, у них разные URL, да и все разное, в том числе и режим передачи. HTTP протокол так устроен что отдает один документ за раз. Чтобы у Вас на странице была картинка, блин не качайте ее, а просто возьмите ее урл и вставьте в результирующую страничку как <img src="URL">. Это самый простой вариант: Если Вы хотите контролировать полностью весь контент, то там должна быть ссылка не на оригинальную картинку а на Ваш скрипт который только и будет делать что вытаскивать реальные картинки и отдавать их. А вообще, почитайте немного о HTTP, HTML, чего то Вы таки не доучили |
| Автор: Grig 23.7.2006, 14:51 | ||
мда, спасибо большое!
Какого же тогда лешего, все остальные страницы с изображениями в скрипте отображаются нормально, а на этом сайте - нет. Ладно, вот например берем на которую ссылается одна из картинок: http://auctions.tokidoki.ru/pic.php?lot_id=2746220&pic_id=1 Может быть я правда чего-то не понимаю, но только загрузить ее все равно не могу. В исходном тексте отображается всякая фигня, адрес рисунка не посмотреть ((. Как отобразить его все-таки?!?! Тут висящий в петле и посиневший смайлик |
| Автор: Nab 23.7.2006, 15:09 | ||||
Потому как скорее всего на остальных страницах абсолютные ссылки на картинки, а на этой относительные, что в принципе более правильно.
Скорее всего Вам прийдется делать преобразование линков в документе, либо задать базовый урл в начале HTML для всех относительных.Для этого смотрите тег <base> Ну или для преобразования, надо распарситьполученный HTML и в тех местах где есть такие неполные ссылки, дополнить их полным именем с http:// ну и все остальное. Если картинки тоже только через пароль отдаются, то надо написать свой скрипт которые таким же макаром забирали бы картинки. А в самом HTML опять же заменить все эти короткие линки, на такие же но к своему скрипту, который и будет выдергивать картинки с реальных адресов. Вообще то что Вы пишите называется CGI-proxy, и поверьте это очень не тривиальная вещь в особенности если используется JavaScript, а у Вас вообще тяжелый вариант, я там еще Ajax засек Как по мне то это монстр получиться |
| Автор: Grig 23.7.2006, 15:17 |
| Nab, да я уже понял, что задачка не из легких (( и к тому же это у меня первая работа на Перл, но по-моему дело не в этом, а в том, что там действительно защит стоит дофигища. Тебе спасибо большое за желание помочь!! Добавлено @ 15:23 Да вот еще: хорошо бы если б рисунки содержали ссылки на самих себя, а то ведь они ссылаются на скрипт, который генерит отображение рисунка, а исходный текст странички посмотреть не представляется возможным... задачка. |
| Автор: Nab 23.7.2006, 15:27 |
| Так а что Вам мешает подставлять эти же ссылки, но правильным образом измененные...? |
| Автор: Grig 23.7.2006, 15:40 | ||||
| Nab, я уже пытался так сделать: рисунок в HTML так ссылается:
а загрузить страничку http://auctions.tokidoki.ru/pic.php?lot_id=2732298&pic_id=1 LWP-агентом у меня не получается. Когда я пытаюсь вручную посмотреть, что там находится в исходном коде, в надежде увидеть наконец-то ссылку на КОНКРЕТНЫЙ рисунок, получаю примерно вот такую фигню:
|
| Автор: Nab 23.7.2006, 15:54 |
| А с какой стати там будет ссылка? ты получаешь уже рисунок, так и должно быть.... PS: А сайт этот что-то вообще здох |
| Автор: Grig 23.7.2006, 16:01 |
| А нельзя ли как-нить сохранить этот рисунок, имея эту ссылку? (упрямый я все-таки |
| Автор: Nab 23.7.2006, 16:05 |
| Да пожалуйста, сохрани его в файл, а потом будешь без редиректа, но все одно, это не изменяет того факта, что ссылки прийдется по всему HTML парсить и изменять... |
| Автор: Grig 23.7.2006, 16:09 |
[censored] Эта ерунда по сравнению с мировой революцией. |
| Автор: Nab 23.7.2006, 16:14 | ||
| Ну блин, ты даешь Ты же уже сам почти все сделал, и написал
|
| Автор: Grig 23.7.2006, 16:25 |
| ура!!! Блин, извините товарищи, за такую пулеметную очередь тупых вопросов. Я тут просто в ступор похоже впадал.. Все заработало!! Зашибись... Добавлено @ 16:26 надеюсь через 2-3 месяца, над всем что здесь написал, буду смеятся как ребенок.. |
| Автор: Nab 23.7.2006, 16:29 |
| Я конечно рад за тебя Но боюсь что задача твоя так просто не решиться в ступоре тебе прийдется еще не раз побывать |