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

时间:2017-11-01 14:29:40

标签: javascript html css iframe wikipedia

我正在建立一个网站(使用Squarespace),其中有各种各样的网页关于那些知名度足以拥有维基百科页面的人。我有超过150个这样的页面,所以手写BIOS是非常耗时的。我希望从这些不同的数字的介绍中提取文本'维基百科页面,以便a)我不必自己编写文本和b)信息总是更新(复制和粘贴的情况不是这样)。

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

@extends('layout.app')
@section('content')
   <h1> Peoples</h1>
   <hr>
@if(count($post)>0)
@foreach($post as $single_post)
<p> {{$single_post->username}}  </p>
@endforeach
@else
 <p> No Posts  </p>
@endif
@endsection

这给了我:

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

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

谢谢, ķ

1 个答案:

答案 0 :(得分:0)

实现这一目标的最佳方法可能是使用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>

或者您可以通过使用自定义查询字符串参数调用wiki api来使用AJAX执行此操作。

<!-- 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来自这个问题