我正在建立一个网站(使用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
这给了我:
<iframe src="https://en.wikipedia.org/wiki/Beyoncé" height="551" width="705"></iframe>
&#13;
我如何从页面中提取文本,而不是图像,侧边栏,目录等等,以便我的网站在视觉上是同质的? iframe甚至是正确的工具吗?
谢谢, ķ
答案 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来自这个问题