OpenStreetMap logo OpenStreetMap

Теперь (предыдущая серия) начнём с простого, с http://:

nwr["contact:vk"~"^http://vk\\.com"]

Вспоминаем про .ru

nwr["contact:vk"~"^http://vk\\.(com|ru)"]

И про vkontakte:

nwr["contact:vk"~"vkontakte", i];

Вообще vk.ru пока слишком молодой, поэтому его стоит заменить на привычный vk.com:

nwr["contact:vk"~"vk\\.ru/"]

Казалось бы, вряд ли в contact:vk будет другой домен с таким же окончанием. Но в предыдщей серии был обнаружен website = prostotabak@vk.com, так что пора смотреть внимательнее.

В contact:vk ожидается либо URL, либо никнейм. Никнеймы проверить без запросов к ВК не получится, но вычистим URLы. С https://vk.com же начинаться должны?

nwr["contact:vk"~"[^/]vk\\.com", i];

И обнаруживаем m.vk.com, new.vk.com, www.vk.com. Ну тогда и доменные зоны тоже проверим:

nwr["contact:vk"~"vk\\.", i]->.a;
nwr["contact:vk"~"vk\\.(com|ru|link)", i]->.skip;
(.a; - .skip;);

Хорошо, а теперь найдём не вкшные ссылки. (?<!...) в регулярках Оверпаса нет, но как-нибудь переживём:

nwr["contact:vk"~"://[^v]", i];

В основном тут нас поджидают ссылки на другие соцсети.

Вообще и завоение слешей проверить бы:

nwr["contact:vk"~"[^:]//"];

А какие символы могут быть в значении? Ну буквы, цифры, подчёркивания. Поищем всё кроме них (и кроме точки с запятой, которую используют в качестве разделителя нескольких значений):

(
  nwr["contact:vk"~"[^a-zA-Z0-9/.:_]"];
)->.a;

(
  nwr.a["contact:vk"~"; ?https://vk\\.com"];
)->.skip;

(.a; - .skip;);

out geom;

И найдём ссылки:

Отсечь бы ещё : из разрешённых символов:

(
  nwr["contact:vk"~"^https://vk\\.com/.*[^a-zA-Z0-9./_]"];
)->.a;

(
  nwr.a["contact:vk"~"; ?https://vk\\.com"];
)->.skip;

(.a; - .skip;);
out geom meta;

Зачем? Ну чтобы вот такое поймать contact:vk = https://vk.com/https://vk.com/etloncoffee

И вишенка:

nwr["contact:vk"~"^vk\\.com$", i];

Офис ВК? Нет, Пятёрочка в Нальчике


p.s. чтобы поиграться с реальными ошибками добавляйте в начало запроса [date:"2026-07-01T00:00:00Z"]

Discussion

Leave a comment

Log in to leave a comment