Каким браузером смотреть локальные страницы с ? и & в названии
work-around из готовых модулей: поднять http-прокси, которого научить поднимать такие файлы с диска
Это пипец какой костыль, товарищи... Я лучше скриптик напишу, который во всех ссылках заменит эти символы на что-нибудь другое и файлы так переименую.
Я лучше скриптик напишу, который во всех ссылках заменит эти символы на что-нибудь другое и файлы так переименую.так да, удобнее. мне с ходу не пришло в голову, что ссылки внутри html-я тоже можно поменять.
нужно было добавлять --restrict-file-names=windows
Это всё равно геморой. Надо багов чтоли в трекерах насоздавать. Это же логично, что браузер должен понимать, что это локальный файл, а значит после "?" идут не get-переменные, а обычная часть имени.
А причём здесь windows? Я и качал, и пытался просмотреть под никсами. Криворукие браузерописатели не знают, что эти символы могут быть допустимыми в именах файлов?
при том что в этом режиме "?" эскейпится
Но всё равно это неправильное решение...
при том что в этом режиме "?" эскейпитсяОн не об этом.
его напрягает что браузер не открывает файл со знаком вопроса в имени!
я не настолько дурак, чтобы не понять, в чем проблема.
Ну почему же... есть реальная проблема: есть решения правильные и работающие. Если эти множества не пересекаются, то я конечно же воспользуюсь работающим, но отсутствие правильного буду считать багом, о чём сообщу в апстрим.
Спасибо.
Но в багтрекеры надо будет всё равно написать.
Это же логично, что браузер должен понимать, что это локальный файл, а значит после "?" идут не get-переменные, а обычная часть имени.но допустим q.html?1 должно открывать скорее файл q.html при локальном использовании
можно, конечно, делать - сначала ищем файл q.html?1, и если не нашли, то берем файл q.html
Кстати, у меня Firefox через "Open file..." сам всё нормально квотирует и показывает. Так что ты что-то делаешь не так.
Кстати, у меня Firefox через "Open file..." сам всё нормально квотирует и показывает. Так что ты что-то делаешь не так.но если в этом файле есть ссылка с ?, то сама она же не заквотируется..
но если в этом файле есть ссылка с ?, то сама она же не заквотируется..Само собой. Но подозреваю, что если wget-у сказать --convert-links, то он это исправит. Т.к. в случае --restrict-file-names=windows ссылки тоже стали невалидные.
но допустим q.html?1 должно открывать скорее файл q.html при локальном использованииэээм... почему? Если ссылка на "q.html?1", то открывать надо "q.html?1", не надо софту додумывать за людей. У людей думать лучше получается. Откуда вообще по-твоему должна взяться такая ссылка?
Кстати, у меня Firefox через "Open file..." сам всё нормально квотирует и показывает.Прочитай выше, у меня тоже. Проблема только при переходе по ссылке.
Т.к. в случае --restrict-file-names=windows ссылки тоже стали невалидные.У меня наоборот стали валидные.
Если ссылка на "q.html?1", то открывать надо "q.html?1", не надо софту додумывать за людей.Ты неправ.
Прямо даже возразить нечем.
ээм... почему? Если ссылка на "q.html?1", то открывать надо "q.html?1", не надо софту додумывать за людей. У людей думать лучше получается. Откуда вообще по-твоему должна взяться такая ссылка?потому что по духу http (и того же rest после ? идут доп. параметры, которые могут в том числе игнорироваться без потери смысла
Аргументация на высоте.Ну у тебя, собственно, тоже не было аргументации должной.
Прямо даже возразить нечем.
Но вообще КО тебе должен был подсказать где это можно посмотреть:
http://www.w3.org/TR/1999/REC-html401-19991224/types.html#ty...
Ну и там ссылка на секцию [URI], которая ссылается на RFC 2396 "Uniform Resource Identifiers (URI): Generic Syntax". Там описано из каких частей оно состоит. И собственно часть запроса интерпретируется специальным образом. Если мы хотим ссылаться на файл со спецсимволами, то они должны быть заквотированы.
У меня наоборот стали валидные.Без опции "--convert-links" или в случае со спецсимволами оно не сработало?
потому что по духу http (и того же rest после ? идут доп. параметры, которые могут в том числе игнорироваться без потери смыслаЭти параметры в том числе могут использоваться каким-нибудь жаваскриптом в странице.
Эти параметры в том числе могут использоваться каким-нибудь жаваскриптом в странице.Опа! Если так, то я действительно не прав.
Я-то думал get-переменные только серверными скриптами обрабатываться могут.
Без опции "--convert-links" или в случае со спецсимволами оно не сработало?с опцией --restrict-file-names=windows и без опции "--convert-links". Файлы теперь называются
page.param1=value1%2param2=value2
Я-то думал get-переменные только серверными скриптами обрабатываться могут.они могут даже браузером добавляться на чистом html-е без js.
например, в форме может быть указано, что она submit-ится через get, тогда все введенные поля пойдут как доп. параметры
они могут даже браузером добавляться на чистом html-е без js.Это понятно. Ты про добавление их говоришь, а я про то, какой они могут нести смысл без серверной обработки.
Тогда с ней я запускал. Вот полная команда.
wget -r -l10 -k --restrict-file-names=windows http://my-site.org/
с опцией --restrict-file-names=windows и без опции "--convert-links". Файлы теперь называютсяНу то, что файлы называются по другому — это понятно. А ссылки внутри файлов тоже исправились что ли?
они могут даже браузером добавляться на чистом html-е без js.Да, я это знаю. Но я ошибочно полагал, что get-запрос обработается только на сервере.
например, в форме может быть указано, что она submit-ится через get, тогда все введенные поля пойдут как доп. параметры
блин, --convert-links и -k - это одно и то жеА, всё, я чего-то тоже проглядел у тебя в первом посте. Ну, видимо, не исправляет он такие имена в ссылках. Это может быть и бага вгета.
Тогда с ней я запускал. Вот полная команда.
wget -r -l10 -k --restrict-file-names=windows http://my-site.org/
Вообще, я так подумал, получается, что это баг не браузеров, а wget. Он должен внутри файлов при опции --convert-links (-k) экранировать вопросы в ссылках. Использование --restrict-file-names=windows - это только воркэраунд. Были бы эти символы доступны для имён файлов в windows, он бы не работал.
Скачал с помощью wget -r -k веб-ресурс. Файлы получились видаman wget
page.php?param1=value1&m2=value2
wget -O
Ты предлагаешь слить 2.5 килофайла в один?
Можно ещё попробовать -E (кажется). В общем оно .html в конце приписывает. В мане точнее посмотри.
Вы щас договоритесь до того, что когда вгету дают пачку адресов "pagename.html?*", он будет сохранять один файл pagename.html, внутри которого будет скрипт, ищущий строку после вопросительного знака в списке сохраненных и выдающий соответствующую страницу.
Можно ещё попробовать -E (кажется). В общем оно .html в конце приписывает. В мане точнее посмотри.О, такой воркэраунд тоже работает.
Пожалуй, он мне даже больше нравится, чем предыдущий.
Не, нафиг. Я хочу это просматривать на e-ink гаджете, вряд ли там интерпретатор js встроен.
О, такой воркэраунд тоже работает.Как и предполагалось, т.к. при этом он как бы вынужден переписать ссылку. А если ничего не менялось, то он не парится, хотя по идее должен бы из-за спецсимволов.
Багу им запости. Я думаю, что это вполне себе баг. Т.к. к тому же если под виндой будешь делать такое, то там по умолчанию этот --restrict-... работает и результат будет нормальный. Т.е. получается не совсем согласованная работа.
Кстати, ещё такой момент, что браузеры могут, например, не считать, что файл html-ный, если у него в конце чего-нибудь другой окажется. Поэтому, наверное, всё же добавлять .html необходимо.
Не, нафиг. Я хочу это просматривать на e-ink гаджете, вряд ли там интерпретатор js встроен.А файлы с вопросиками он умеет читать?
Я пока на него не заливал
вряд ли там интерпретатор js встроенВ Kindle вроде есть, так что можешь и в своем посмотреть.
Ну в Киндл - там полноценный браузер, так как 3G и можно сёрфить по инету. А в моём lbook интерпретация на уровне html2text наверняка (ну +картинки).
Написал
Therefore, I believe that wget -k must change ? to %3F in html-codeнеобратимые ескейпы — это калский кал!1111111
если на сайте есть страница /page.php, принимающая на вход параметры в виде /page.php?param=1, а также есть (статическая, например) страница /page.php%3Fparam=1 — они при скачивании сохранятся под одним именем (если вгет попатчат согласно реквесту)
ты можешь назвать ебанатом вебмастера, выложившего вторую страницу под таким именем, а я тебе возражу что он просто воспользовался тем же самым попатченным вгетом
они при скачивании сохранятся под одним именемтакой конфликт может возникнуть при любой схеме перекодирования, и wget должен такое разруливать и генерить уникальное имя (например, добавкой [2] и т.д.)
такой конфликт может возникнуть при любой схеме перекодированияесли качаешь в пустую директорию и если схема перекодирования взаимно однозначная — как он возникнет?
Интересно, кстати, как веб-сервер выберет выдать ли этот файл или page.php с параметрами.
Интересно, кстати, как веб-сервер выберет выдать ли этот файл или page.php с параметрами.page.php с параметрами
а чтобы этот файл получить, нужно как раз-таки будет в адресной строке заменить ? на %3F
если качаешь в пустую директорию и если схема перекодирования взаимно однозначная — как он возникнет?Ну, например, ещё есть POST.
Ну, например, ещё есть POST.как можно достичь коллизии за один запуск вгета?
а чтобы этот файл получить, нужно как раз-таки будет в адресной строке заменить ? на %3FА как тогда получить файл, где в названии реально будет %3F?
А как тогда получить файл, где в названии реально будет %3F?написать %XX3F, где XX — код процента
если качаешь в пустую директорию и если схема перекодирования взаимно однозначная — как он возникнет?Так она и сейчас не взаимно однозначна.
если качаешь в пустую директорию и если схема перекодирования взаимно однозначная — как он возникнет?но если была введена взаимно-однозначная схема перекодирования, то в этой схеме ничего не мешает сделать, чтобы ? и %3F кодировались по разному.
но я о том, что все равно необходимо внедрять какую-то схему борьбы с конфликтами (например, внедряя взаимно-однозначное перекодирование). конфликт в том числе может быть и с запросами вида: a.ru/v/z, a.ru/v//z, a.ru/v///z
как можно достичь коллизии за один запуск вгета?Сразу скажу, что мои знания тут немного могут плавать, так что чур ногами не бить, но насколько я понимаю:
Есть ссылка, где передаётся постом переменная с одним значением параметра, а есть - где с другим. URL у обеих одинаковый, а генерятся на них разные страницы. Так как имена wget делает на основе url, то будет коллизия.
Есть ссылка, где передаётся постомпост может отправить только форма или скрыпт, а на них вроде -r не распространяется
Есть ссылка, где передаётся постом переменная с одним значением параметра, а есть - где с другим. URL у обеих одинаковый, а генерятся на них разные страницы.Ссылки не могут привести к POST-запросу.
Но скрипт можно сделать вызываемым по ссылке, а там уже передать POST. Хотя есть подозрение, что wget с этим ничего поделать не сможет => получается защита от выкачки сайта. Странно, что ей мало кто пользуется.
получается защита от выкачки сайта.а заодно и от поисковых систем и от посетителей с тупыми браузерами (напр. с мобильниками)
Странно, что ей мало кто пользуется.такое делают иногда, но обычно не с целью запретить выкачку. Уж выкачать-то смогут, было бы желание
Мда, тогда понятно почему так не делают. Пожалуй, POST - негодный пример.
А как же
Видимо, мой тоже закроют, сказав, что это не баг....
"?" в конце урла убери, а то говорят invalid item id
Убрал.
А как же поискать сначала?Странное там оправдание. С ним же можно и не перекодировать, когда используется рестрикт для символов в файлах.
Ну в смысле то, что лучше дописывать .html, конечно, правда. Я выше тоже писал. Но это всё равно не повод забивать на переписывание.
Ты, может, сформулируешь это как-нибудь на английском и там же отпишешь? А то также закроют и всё.
вряд ли там интерпретатор js встроен.Я говорил про js?
Ты, может, сформулируешь это как-нибудь на английском и там же отпишешь? А то также закроют и всё.Постараюсь завтра не забыть.
Я говорил про js?Обычно его вставляют в html. Интерпретатор чего-нибудь другого ожидать на e-ink, думаю, ещё более бессмысленно.
Оставить комментарий
dangerr
Скачал с помощью wget -r -k веб-ресурс. Файлы получились видаpage.php?param1=value1¶m2=value2
firefox 3 при переходе по ссылке на такой файл, утверждает, что такого файла не существует. Хотя если ему скормить файл через open, открывает. Midori и uzbl (оба на webkit) пытаются открыть просто файл page.php и тоже само собой не находят.
lynx открывает верный файл, но не в виде отрендеренной страницы, а показывает html-исходники.