Как распарсить строку запроса в Я?

12
S
На сайте с 10.03.2004
Offline
2
2072

У меня проблема - не могу понять логику строки запроса в Я.

Как я понял у него есть 2 варианта : text=... и qs=...

в первом случае понятно utf8, а во втором варианте что-то похожее, но не то...

Я не крутильщик я только учусь
Back Door Man
На сайте с 20.08.2003
Offline
151
#1

Никогда не встречал у Яндекса в строке запроса параметр qs

Что касается text, то это не UTF-8, а URL-Encoded

Дмитрий
S
На сайте с 10.03.2004
Offline
2
#2
W
На сайте с 13.05.2003
Offline
22
#3

то, что и сказал

Back Door Man
- URL-Encoded. в PERL одной строчкой раскрывается.

А ты в чем парсить хочешь? Не на "коленке"?

Инструментарий Оптимизаторов (http://www.seomaster.ru/)
Lenka
На сайте с 10.10.2003
Offline
139
#4

Посмотрев в логи на рефереры с Яндекса делаю вывод, что страницы вида

http://www.yandex.ru/yandsearch?rpt=rad&text=bla-bla-bla

суть есть первая страница результатов. А страницы вида

http://www.yandex.ru/yandpage?q=956925184&p=1&ag=d&qs=textBLA-BLA-BLA

суть есть последующие страницы (&p порядковый номер после первой страницы).

Те который яндпейдж - они просто дважды перекодированы.

Как декодировать - тут в форуме даже куски кода приводились (мною в т.ч. - но сейчас лениво поиском искать :) )

🚬

S
На сайте с 10.03.2004
Offline
2
#5

парсить хочу в php, но в данном случае функция UrlDecode не помагает.

А вот если я хочу распарсить, к примеру,

http://www.yandex.ru/yandsearch?rpt=rad&text=%EE%E1%EE%F0%F3%E4%EE%E2%E0%ED%E8%E5+%E4%EB%FF+%F0%E0%E7%EB%E8%E2%E0+%EF%E8%E2%E0,

то переменная text после UrlDecode будет равна "оборудование для разлива пива". То есть все ок.

Lenka
На сайте с 10.10.2003
Offline
139
#6
Как писал Sharm
парсить хочу в php, но в данном случае функция UrlDecode не помагает.

О пользе медитации в программировании.

Посмотри, что эти строки отличаются не только yandsearch и yandpage, но и видом закодированного текста. Например, посчитай сколько буковок бывает между процентами в обоих случаях. И подумай над тем, что это ж-ж-ж неспроста.

Попробуй "нераскодировавшуюся" строчку пропустить через продедуру декодирования еще раз.

Lenka
На сайте с 10.10.2003
Offline
139
#7

Блин, вот поискала поиском - там примеры

Думаю, если еще поискать, еще про это можно найти.

Учите матчасть.

[Удален]
#8

qs на второй и далее стр. поиска, раскодировывать надо примерно так же как и в первом случае, но дополнительно перевести то ли koi->win, то ли win->koi.

S
На сайте с 10.03.2004
Offline
2
#9

За приведенные ссылки спасибо, но я в перле не силен...

Что касается простого двойного декодирования, то близко, но что-то не то. Последний совет, кажется очень близок, вот только я не знаю как перекодировать из кои в win...

S
На сайте с 10.03.2004
Offline
2
#10

Как я нашел в других форумах это есть 7 битная кодировка, отсюда вопрос как декодировать ее?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий