SE::Wikipedia - парсер поиска Wikipedia
Обзор парсера
Парсер поисковой выдачи Wikipedia. Позволяет искать статьи энциклопедии по ключевым словам через официальный MediaWiki Action API и получать структурированные результаты: ссылки, заголовки, сниппеты, краткие описания, превью изображений, идентификаторы страниц и размер статей.
Поддерживаются все языковые издания Wikipedia (en, ru, de, ja, simple, be-tarask и др.). На одной странице выдачи — до 20 результатов (ограничение API extracts), пагинация — до 50 страниц. Дубликаты между страницами автоматически отфильтровываются.
Функционал A-Parser позволяет сохранять настройки парсинга для дальнейшего использования (пресеты), задавать расписание парсинга и многое другое. Сохранение результатов возможно в том виде и структуре которая вам необходима, благодаря встроенному мощному шаблонизатору Template Toolkit.
Для получения полного текста статьи используйте парсер SE::Wikipedia::Article.
Собираемые данные
Данные собираются через API https://{lang}.wikipedia.org/w/api.php (generator=search).
- Общее количество результатов (
totalcount) - Ссылка на статью
- Заголовок (anchor)
- Сниппет (plain text extract)
- Краткое описание (description)
- Превью изображения (если есть)
- Page ID
- Размер статьи (байты)
Возможности
- Поиск по любому языковому изданию Wikipedia (список изданий)
- Настройка длины сниппета (до 1200 символов — максимум MediaWiki TextExtracts)
- Пагинация до 50 страниц × 20 результатов
- Автоматическая дедупликация статей между страницами выдачи
- Поддержка прокси и общих настроек A-Parser
Варианты использования
- Сбор баз ссылок на статьи Wikipedia
- Подбор релевантных статей по ключам для контента и SEO
- Получение сниппетов и описаний для чат-ботов и справочных систем
- Дальнейший разбор статей через SE::Wikipedia::Article
Запросы
В качестве запросов необходимо указывать поисковые фразы, например:
Albert Einstein
Иван Ефремов
Berlin
東京
Київ
Язык поиска задаётся в настройках парсера (Wikipedia language), а не в запросе.
Подстановки запросов
Вы можете использовать встроенные макросы для размножения запросов.
Варианты вывода результатов
A-Parser поддерживает гибкое форматирование результатов благодаря встроенному шаблонизатору Template Toolkit, что позволяет ему выводить результаты в произвольной форме, а также в структурированной, например CSV или JSON.
Список ссылок (по умолчанию)
Формат результата:
$serp.format('$link\n')
Пример результата:
https://en.wikipedia.org/wiki/Albert_Einstein
https://en.wikipedia.org/wiki/Hans_Albert_Einstein
https://en.wikipedia.org/wiki/Religious_and_philosophical_views_of_Albert_Einstein
https://en.wikipedia.org/wiki/Albert_Brooks
https://en.wikipedia.org/wiki/Einstein_family
Ссылки + заголовки + сниппеты
Формат результата:
$serp.format('$link\t$anchor\t$snippet\n')
Пример результата:
https://en.wikipedia.org/wiki/Albert_Einstein Albert Einstein Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist best known for developing the theory of relativity. Einstein also made important contributions to quantum theory. His mass–energy equivalence formula E = mc2, which...
https://en.wikipedia.org/wiki/Hans_Albert_Einstein Hans Albert Einstein Hans Albert Einstein (May 14, 1904 – July 26, 1973) was a Swiss-American engineer, the second child and first son of physicists Albert Einstein and Mileva Marić. He was a professor of hydraulic engineering at the University of California, Berkeley from...
https://en.wikipedia.org/wiki/Religious_and_philosophical_views_of_Albert_Einstein Religious and philosophical views of Albert Einstein Albert Einstein's religious views have been widely studied and often misunderstood. Albert Einstein stated "I believe in Spinoza's God". He did not believe in a personal God who concerns himself with fates and actions of human beings, a view which he...
Вывод в CSV
Формат результата:
[% FOREACH item IN p1.serp; tools.CSVline(item.link, item.anchor, item.snippet, item.description, item.image, item.pageid, item.size); END %]
Начальный текст:
Ссылка,Заголовок,Сниппет,Описание,Изображение,Page ID,Размер
Пример результата:
https://en.wikipedia.org/wiki/Albert_Einstein,"Albert Einstein","Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist best known for developing the theory of relativity. Einstein also made important contributions to quantum theory. His mass–energy equivalence formula E = mc2, which...","German-born theoretical physicist (1879–1955)",https://upload.wikimedia.org/wikipedia/commons/thumb/2/28/Albert_Einstein_Head_cleaned.jpg/330px-Albert_Einstein_Head_cleaned.jpg?utm_source=en.wikipedia.org&utm_campaign=api&utm_content=thumbnail,736,238698
https://en.wikipedia.org/wiki/Hans_Albert_Einstein,"Hans Albert Einstein","Hans Albert Einstein (May 14, 1904 – July 26, 1973) was a Swiss-American engineer, the second child and first son of physicists Albert Einstein and Mileva Marić. He was a professor of hydraulic engineering at the University of California, Berkeley from...","Swiss-American engineer and educator",https://upload.wikimedia.org/wikipedia/commons/c/c9/Hans-Albert-Einstein-1953.jpg?utm_source=en.wikipedia.org&utm_campaign=api&utm_content=thumbnail_unscaled,1373258,14371
Дамп в JSON
Формат результата:
[% FOREACH item IN p1.serp;
'{"link":"' _ item.link _ '","anchor":"' _ item.anchor _ '","snippet":"' _ item.snippet _ '"}\n';
END %]
Пример результата:
{"link":"https://en.wikipedia.org/wiki/Albert_Einstein","anchor":"Albert Einstein","snippet":"Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist best known for developing the theory of relativity. Einstein also made important contributions to quantum theory. His mass–energy equivalence formula E = mc2, which..."}
{"link":"https://en.wikipedia.org/wiki/Hans_Albert_Einstein","anchor":"Hans Albert Einstein","snippet":"Hans Albert Einstein (May 14, 1904 – July 26, 1973) was a Swiss-American engineer, the second child and first son of physicists Albert Einstein and Mileva Marić. He was a professor of hydraulic engineering at the University of California, Berkeley from..."}
Возможные настройки
| Название параметра | Значение по умолчанию | Описание |
|---|---|---|
| Pages count | 5 | Количество страниц поиска (от 1 до 50). На каждой странице до 20 результатов |
| Wikipedia language | en | Языковое издание Wikipedia (en, ru, de, ja, simple, be-tarask и др.). Список изданий |
| Snippet length | 250 | Длина сниппета в символах (150–1200). Максимум API TextExtracts — 1200 |
API Wikipedia при глубокой пагинации может возвращать пересекающиеся результаты. Парсер удаляет дубликаты по pageid и пишет в лог, сколько было отсеяно.