интересует, как подменять баннеры на свои. не резать или подменять картинку баннера, а именно замена кода баннера на свой.
куда смотреть?
вы хотите в коде HTML подменить часть текста, в которой прописаны параметры баннера?
>вы хотите в коде HTML подменить часть текста, в которой прописаны параметры
>баннера?да! не знаю с какой стороны подойти
>да! не знаю с какой стороны подойтиПо ацлям опр.хосты редиректим на скрипт запросами, типа:
localhost/cgi-bin/wtf?http://here.original.url/must/be/placed.htm
Скрипт, скажем, wget-ом выкачивает заданный объект, затем делает подстановку:
$mycode = "<iframe bla-bla-bla>";
$page =~ s/(^.*?)<!-- banner system AAA -->.*?<!-- endof AAA -->(.*&)/$1 $mycode $2/im;и выплевывает его в стдаут с положенными шттп-хедерами. Сквид откачивает объект и возвращает его клиенту. Клиент щяслив. Разумеется, если модифицируемый хост не требует кукизов и не работает через POST.
К сожалению, не знаю менее накладного механизма впиндюривать клиентам подменные объекты.
>[оверквотинг удален]
>Скрипт, скажем, wget-ом выкачивает заданный объект, затем делает подстановку:
>
> $mycode = "<iframe bla-bla-bla>";
> $page =~ s/(^.*?)<!-- banner system AAA -->.*?<!-- endof AAA -->(.*&)/$1 $mycode $2/im;
>
>и выплевывает его в стдаут с положенными шттп-хедерами. Сквид откачивает объект и
>возвращает его клиенту. Клиент щяслив. Разумеется, если модифицируемый хост не требует
>кукизов и не работает через POST.
>
>К сожалению, не знаю менее накладного механизма впиндюривать клиентам подменные объекты.хуясе, чуть легче чем вывести спутник на орбиту, с протонной пушкой на борту. :)
не, серьёзно, подмена в сквиде части кода невозможна?
>[оверквотинг удален]
>>
>>и выплевывает его в стдаут с положенными шттп-хедерами. Сквид откачивает объект и
>>возвращает его клиенту. Клиент щяслив. Разумеется, если модифицируемый хост не требует
>>кукизов и не работает через POST.
>>
>>К сожалению, не знаю менее накладного механизма впиндюривать клиентам подменные объекты.
>
>хуясе, чуть легче чем вывести спутник на орбиту, с протонной пушкой на
>борту. :)
>не, серьёзно, подмена в сквиде части кода невозможна?если банер (картинка которую видит пользователь) качается с конкретного хоста и имеет урль на которой можно написать регекс, то все намного проще.
>хуясе, чуть легче чем вывести спутник на орбиту, с протонной пушкой на
>борту. :)
>не, серьёзно, подмена в сквиде части кода невозможна?Неа. Сквид занимается тем, что на основе конфигурации принимает решения о разрешении доступа к тому или иному URL И необходимости кеширования результата. Анализом кода передаваемых объектов сквид не занимается.
Фактически, задачу Вы ставите так:
1. сквид получает запрос на страницу и закачивает её себе в кэш.
2. по определённому правилу отправляет страницу скрипту(программе) на обработку
3. скрипт делает поиск в тексте на наличие определённых фрагментов и подменяет их на то, что прописано в конфиге
4. скрипт отдаёт изменённый текст сквиду
5. сквид отдаёт изменённый текст клиенту.
в этой схеме есть одно крайне тонкое место,- пункт 3,- в режиме реального времени такая схема практически неработоспособна (если конечно у Вас нет серьёзных мощностей)Думается, что проще будет зайти с другой стороны,- подумать что Вы "на самом деле" хотите сделать и пересмотреть архитектуру.
>Думается, что проще будет зайти с другой стороны,- подумать что Вы "на
>самом деле" хотите сделать и пересмотреть архитектуру.вопрос простой и корыстный :) хотя больше интересует сторона реализации идеи.
тупо заменять рекламу на свою (например adsense), пользователям не всё ли равно какую рекламу смотреть?ЗЫ: пожалуйста не рассказывайте мне про моральную сторону вопроса
Мне плевать на мораль, мне интересно технически:
Таки чем Вас не устраивает провто заменять баннеры определённых размеров на свои?
>ЗЫ: пожалуйста не рассказывайте мне про моральную сторону вопроса
>Мне плевать на мораль, мне интересно технически:
>Таки чем Вас не устраивает провто заменять баннеры определённых размеров на свои?банер - это не только картинка, это кусок кода
>Сквид занимается тем, что принимает решения о разрешении
>доступа к тому или иному URL И необходимости кеширования результата.
>Анализом кода передаваемых объектов сквид не занимается.Совершенно верно. Предмет работы сквида - URI+хедеры шттп-запроса/ответа. Тело запроса/ответа сквида не касается, и может быть проанализировано только через внешние хелперы.
Кстати, я был неправ выше. Кукизы передаются в хедерах запроса, и если все тело запроса слить на хелпер, то отработают и POST, и кукизы.
> чуть легче чем вывести спутник на орбиту, с протонной пушкой на борту. :)На самом деле, задача решаема сравнительно просто, но возникнет проблема прожорливости собственно подстановщика кода. Если допустить, что есть таблица замены кода ИХ:НАШ в n позиций, то для КАЖДОГО прокачиваемого объекта придется выполнить n/2 поисков регулярных выражений в теле ответа. Думаю, что для реализации масштабной подмены понадобится молотилка, стоимость которой превысит ожидаемый экономэффект от рекламной кампании.
>> чуть легче чем вывести спутник на орбиту, с протонной пушкой на борту. :)
>
>На самом деле, задача решаема сравнительно просто, но возникнет проблема прожорливости собственно
>подстановщика кода. Если допустить, что есть таблица замены кода ИХ:НАШ в
>n позиций, то для КАЖДОГО прокачиваемого объекта придется выполнить n/2 поисков
>регулярных выражений в теле ответа. Думаю, что для реализации масштабной подмены
>понадобится молотилка, стоимость которой превысит ожидаемый экономэффект от рекламной кампании.ладно, упрощаем немного задачу. заменять нужно только на сайтах X и Y. как?
>>> чуть легче чем вывести спутник на орбиту, с протонной пушкой на борту. :)
>>
>>На самом деле, задача решаема сравнительно просто, но возникнет проблема прожорливости собственно
>>подстановщика кода. Если допустить, что есть таблица замены кода ИХ:НАШ в
>>n позиций, то для КАЖДОГО прокачиваемого объекта придется выполнить n/2 поисков
>>регулярных выражений в теле ответа. Думаю, что для реализации масштабной подмены
>>понадобится молотилка, стоимость которой превысит ожидаемый экономэффект от рекламной кампании.
>
>ладно, упрощаем немного задачу. заменять нужно только на сайтах X и Y.
>как?Думаю что нужно менять только кусок url
http://u7632.07.spylog.com/cnt?cid=763207&p=0&rn=0.913931073...
здесь cid=763207 это некий ID который получает бабки за показ
значит нам нужно парсить spylog.com/cnt?cid= и менять id на свой
Как бы скрипт написать?
>>ладно, упрощаем немного задачу. заменять нужно только на сайтах X и Y.
>>как?
>
>Думаю что нужно менять только кусок url
>http://u7632.07.spylog.com/cnt?cid=763207&p=0&rn=0.913931073...
>здесь cid=763207 это некий ID который получает бабки за показ
>значит нам нужно парсить spylog.com/cnt?cid= и менять id на свой
>Как бы скрипт написать?а вот тут и основная проблема. сквид контент фильтрить не умеет. редиректор может менять урлы. но в случае например, с гуглом или яндексом, id идет не в урле.
>а вот тут и основная проблема. сквид контент фильтрить не умеет. редиректор
>может менять урлы. но в случае например, с гуглом или яндексом,
>id идет не в урле.ну значит просто ограничимся баннерами с tbn, spylog и тому подобных