Вытащить текстовое содержание из Википедии - iframes?

Я нахожусь в процессе создания веб-сайта (используя Squarespace) с различными страницами о людях, достаточно примечательных, чтобы иметь страницы Википедии. У меня есть более 150 таких страниц, поэтому биография почерка требует много времени. Я надеюсь извлечь текст из введения на страницах Википедии этих различных фигур, так что а) я не должен сам писать текст и б) информация всегда обновляется (что не относится к копированию) и вставить).

Я написал здесь основной формат статьи Wikipedia Бейонсе, которая показывает страницу Wikipedia как нормальную при запуске. Значения высоты и ширины являются произвольными.

<iframe src="https://en.wikipedia.org/wiki/Beyoncé" height="551" width="705"></iframe>

Что дает мне:

<iframe src="https://en.wikipedia.org/wiki/Beyoncé" height="551" width="705"></iframe>

Как я могу извлечь только текст со страницы, а не изображения, боковые панели, оглавление и т. Д., Чтобы мой веб-сайт мог быть визуально однородным? Являются ли iframes правильным инструментом для использования?

Спасибо, к

1 ответ

Вероятно, лучший способ добиться этого - работа с API Википедии. Например, вы можете получить некоторые данные в формате json из Wikipeida API, а затем отформатировать их и сохранить в своей базе данных. JSON:

https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro=&explaintext=&titles=Beyonc%C3%A9

и то же самое, но в HTML представлении формата JSON:

https://en.wikipedia.org/w/api.php?action=query&prop=extracts&exintro=&explaintext=&titles=Beyonc%C3%A9

если вы хотите работать с iframe Вы могли бы попробовать версию для печати вики в формате iframe.

<iframe src="https://en.wikipedia.org/w/index.php?title=Beyonc%C3%A9&printable=yes"></iframe>

или вы можете сделать это с помощью AJAX, вызвав API вики с пользовательскими параметрами строки запроса.

<!-- HTML -->
<div id="article"></div>

$(document).ready(function(){
    $.ajax({
        type: "GET",
        url: "http://en.wikipedia.org/w/api.php?action=parse&format=json&prop=text&page=Beyoncé&callback=?",
        contentType: "application/json; charset=utf-8",
        async: false,
        dataType: "json",
        success: function (data, textStatus, jqXHR) {

            var markup = data.parse.text["*"];
            var blurb = $('<div></div>').html(markup);
            $('#article').html($(blurb).find('p'));

        },
        error: function (errorMessage) {
        }
    });
});

исходный вопрос для метода AJAX, а также ДЕМО из этого вопроса

Другие вопросы по тегам