Вытащить текстовое содержание из Википедии - 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, а также ДЕМО из этого вопроса