Википедия:Форум ботоводов

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Боты

Распознать дизамбиги[править | править вики-текст]

Приветствую старших товарищей. У меня имеется бот, написанный примитивным образом на примитивном языке MS Access. Всё, что он умеет, это открыть URL, получить HTML и распарсить его (ну, а также сочинить новое значение для oDocument.all("wpTextbox1").Value и вызвать метод oDocument.all("wpSave").Click). До сего дня этого хватало. Я теоретически знаю, что у Википедии есть какой-то API, но никогда им не пользовался и даже не уверен, что для моего бота это возможно.

А теперь вопрос. Мне надо узнать, какие перенаправления и какие дизамбиги ссылаются на данную статью. Допустим, я могу открыть и распарсить "Ссылки сюда". Перенаправления там можно распознать по &redirect=no, добавленному к ссылке. Но как распознать дизамбиги? Знаю, что это возможно, потому что есть скрипт, который в текстах статей красит ссылки на дизамбиги розовым фоном, но я не знаю, по какому признаку он их отличает.

Заранее спасибо. Vcohen 06:58, 31 июля 2014 (UTC)

По наличию шаблонов {{Неоднозначность}}, {{Многозначность}}, {{disambiguation}} и {{disambig}} в тексте статьи --DR 07:01, 31 июля 2014 (UTC)
Об этом я уже думал. Таких шаблонов не 4 штуки, а гораздо больше, например {{список однофамильцев}}, {{НПы}} и т.д. Где-то есть их полный список? Или надо открывать еще и страницу каждого шаблона, найденного в тексте статьи, и проверять рекурсивно, к каким шаблонам он обращается? Vcohen 07:06, 31 июля 2014 (UTC)
Все эти шаблоны находятся в категории Википедия:Шаблоны неоднозначностей. Другое дело, что у каждого есть еще и редиректы. Когда-то полный список этих шаблонов был в гаджете, но потом его переделали, убрав список шаблонов. --Michgrig (talk to me) 07:29, 31 июля 2014 (UTC)
Понятно, спасибо, но пока получается, что корректного решения нет. А тот скрипт, который красит ссылки розовым фоном, неужели тоже так работает? Он же бежит на клиенте, я не думаю, что он одну за другой открывает все ссылки в статье и парсит статьи. Vcohen 07:40, 31 июля 2014 (UTC)
Упс... Гаджет, на который Вы дали ссылку, это и есть тот скрипт. Попробую почитать его код, вдруг что-нибудь пойму. Vcohen 07:59, 31 июля 2014 (UTC)
И у нее десятка два подкатегорий... Да, это проще, спасибо. Vcohen 07:59, 31 июля 2014 (UTC)
Может быть, можно автоматически распознавать, входит ли в конечном счёте дочерняя категория в основную? С другой стороны, древо подкатегорий там есть, это и есть их список. С уважением,--Draa kul talk 08:10, 31 июля 2014 (UTC)
Да, конечно. Два десятка - это немного. Vcohen 08:21, 31 июля 2014 (UTC)
А нельзя сказать, чтобы искало в категории и всех ее подкатегориях? А то ведь при появлении новой подкатегории придется ее вручную добавлять в список, что явно неудобно. --Michgrig (talk to me) 08:25, 31 июля 2014 (UTC)
Действительно, неудобно. Но искать в категории не нужно, это очень громоздкая операция, в этих категориях слишком много статей. Мне нужна обратная операция - проверить, что данная статья находится в категории (или одной из ее подкатегорий). Vcohen 08:30, 31 июля 2014 (UTC)
Кстати, этот список подкатегорий можно считывать и загружать программно. Vcohen 09:35, 1 августа 2014 (UTC)
  • А вообще посмотрите вклад бота, это нормально? Сто раз подряд редактировать одну и ту же статью? По-моему тут или переписывать бота надо, или блокировать. WBR, BattlePeasant 08:12, 1 августа 2014 (UTC)
Это был эксперимент, других таких эпизодов во вкладе нет. Просто статья очень большая, Эксплорер виснет, если сохранять ее всю сразу, поэтому я решил ее редактировать по одной секции. Vcohen 09:35, 1 августа 2014 (UTC)
Вот поэтому желательно использовать готовые фреймворки для ботов, а не писать свои велосипеды. А получить список дизамбигов можно парой запросов к API. Ashik 19:11, 15 августа 2014 (UTC)
А к API имеется хелп? Может, я и смогу им пользоваться. Vcohen 19:55, 15 августа 2014 (UTC)
https://ru.wikipedia.org/w/api.php и mw:API:Main_page. -- dima_st_bk 05:58, 16 августа 2014 (UTC)
Большое спасибо. Vcohen 06:50, 16 августа 2014 (UTC)

Правки СО ботов[править | править вики-текст]