Использовать API Википедии для извлечения элементов таблицы (javascript/jQuery)?

Я искал повсюду для этого и, к сожалению, не смог найти ответ. Я пытаюсь получить элементы таблицы со страниц Википедии, используя API Википедии и JavaScript/jQuery. Например, возьмем страницу ниже:

https://en.wikipedia.org/wiki/2017_NFL_Draft

Если я хочу иметь возможность использовать API для получения только одной ячейки таблицы (например, раунд 1, выбор № 7 или все игроки, выбранные из Калифорнийского университета в Лос-Анджелесе), есть ли способ сделать это? Поскольку каждая из них одинакова, думаю, будет легко сделать один вызов на разных страницах (просто нужно увеличить URL-адрес на 1), но мне не повезло с использованием API для получения чего-либо, кроме раздела.

Я попробовал тестовый вызов, который показывает мне таблицу:

https://en.wikipedia.org/w/api.php?action=parse&page=2017_NFL_Draft§ion=2&prop=text

И я вижу определенные элементы, которые я хотел бы захватить, но не могу понять, как это сделать. Есть какой-либо способ сделать это? Было бы лучше просто скопировать/вставить данные в excel и поместить их в форму, которую я хочу?

Спасибо за всю твою помощь!


person DietDrB    schedule 06.05.2018    source источник
comment
См. stackoverflow.com/a/15403888/1110636.   -  person Timir    schedule 06.05.2018
comment
Возможный дубликат jQuery() не находит элементы в результате jQuery.parseHTML()   -  person Timir    schedule 06.05.2018


Ответы (1)


Я считаю, что это то, что вы ищете. Я втягиваю в основной стол. Вы можете уточнить запросы элементов внутри моего объекта $table

var params = {
  origin: '*',
  action: 'parse',
  page: '2017_NFL_Draft',
  section: 2,
  prop: 'text',
  format: 'json'
};

$.getJSON('https://en.wikipedia.org/w/api.php', params).then(res => {
  var $table = $(res.parse.text['*']).find('table').eq(3)
  $('body').append($table)
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

person charlietfl    schedule 06.05.2018
comment
Вау, это здорово! Большое спасибо ... как раз то, что мне нужно, чтобы начать. Один вопрос... что здесь означает происхождение с помощью * ? Непонятно из вики-документации. - person DietDrB; 07.05.2018
comment
О, это требование для CORS из mediawiki.org/wiki/Manual:CORS. Это боль, чтобы отследить. Мне также пришлось выполнить поиск на этом сайте и я обнаружил, что использование * в качестве происхождения работает. - person charlietfl; 07.05.2018
comment
Предлагаем вам начать новый вопрос для этого и в этом вопросе указать исходный html - person charlietfl; 28.05.2018
comment
Спасибо, но думаю, что я понял это на самом деле, или, скорее, я близок к тому, чтобы понять это (поэтому я удалил вопрос)! Благодарю вас за помощь здесь, абсолютно огромную. - person DietDrB; 28.05.2018