【问题标题】:Pulling text content from Wikipedia - iframes?从维基百科中提取文本内容 - iframe?
【发布时间】:2018-04-13 21:49:44
【问题描述】:

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

我在此处为 Beyonce 的 Wikipedia 文章写出了基本格式,该文章在运行时显示 Wikipedia 页面正常。高度和宽度值是任意的。

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

这给了我:

&lt;iframe src="https://en.wikipedia.org/wiki/Beyoncé" height="551" width="705"&gt;&lt;/iframe&gt;

我怎样才能只从页面中提取文本,而不是图像、侧边栏、目录等,以便我的网站在视觉上是同质的? iframe 甚至是正确的工具吗?

谢谢, 克

【问题讨论】:

标签: javascript html css iframe wikipedia


【解决方案1】:

实现这一点的最佳方法可能是使用 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 artice 的打印机友好版本放入 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

【讨论】:

    猜你喜欢
    • 2019-09-08
    • 2012-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    相关资源
    最近更新 更多