javascript - 从维基百科中提取文本内容 - iframe?

标签 javascript html css iframe wikipedia

我正在构建一个网站(使用 Squarespace),其中包含关于知名度足以拥有维基百科页面的人物的各种页面。我有超过 150 页这样的页面,所以手写简历非常耗时。我希望从这些不同人物的维基百科页面的介绍中提取文本,这样 a) 我不必自己写文本 b) 信息总是更新的(副本不是这种情况并粘贴)。

我在这里为 Beyonce 的维基百科文章编写了基本格式,它在运行时正常显示维基百科页面。高度和宽度值是任意的。

<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>

我怎样才能只从页面中提取文本,而不是图像、侧边栏、目录等,这样我的网站才能在视觉上保持一致? iframe 是否是正确的工具?

谢谢, K

最佳答案

实现这一目标的最佳方法可能是使用 Wikipedia API。 例如,您可以从 Wikipeida API 检索一些 json 格式的数据 然后格式化并保存到您的数据库。 JSON:

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

相同,但在 JSON 格式的 HTML 表示中:

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

如果您想使用 iframe,您可以尝试将 wiki 文章的打印友好版本放入 iframe。

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

或者您可以使用 AJAX 通过使用自定义查询字符串参数调用 wiki 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) {
        }
    });
});

source question for ajax method 还有DEMO来自这个问题

关于javascript - 从维基百科中提取文本内容 - iframe?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47057211/

相关文章:

javascript - 将 Javascript 用户数组与 "Solution"数组匹配

javascript - 状态变异是副作用?

javascript - jQuery UI 选项卡或任何其他方式

html - 在 Chrome 中测试时如何禁用 HTML 缓存?

javascript - 使用javascript?

javascript - 尝试用 HTML 设计台球游戏来制作 jQuery 游戏——我的第一个元素

javascript - @davidjbradshaw 的 iframe-resizer,iframe 宽度不调整

html - 如何让较长的文本适合较小的 DIV,并在必要时换行?

html - css 属性 float left 没有按预期工作

html - css flex 布局不适用于某些 iPad