Api 获取维基百科文章的摘录?

Api 获取维基百科文章的摘录?,api,parsing,wikipedia,wikipedia-api,Api,Parsing,Wikipedia,Wikipedia Api,我已经上下打听了很多次了,但是我不知道是否有一个很好的方法来获取一篇文章的摘录(通常是第一段)。如果能获得该段落的HTML格式也会很好 我目前看到的获取类似于代码片段的内容的唯一方法是执行全文搜索(),但这并不是我真正想要的(太短) 除了野蛮解析HTML/WikiText之外,还有其他方法获取Wikipedia文章的第一段吗?我找不到通过API实现这一点的方法,所以我求助于解析HTML,使用。这很简单,在以下几行中: $doc = new DOMDocument(); $doc->load

我已经上下打听了很多次了,但是我不知道是否有一个很好的方法来获取一篇文章的摘录(通常是第一段)。如果能获得该段落的HTML格式也会很好

我目前看到的获取类似于代码片段的内容的唯一方法是执行全文搜索(),但这并不是我真正想要的(太短)


除了野蛮解析HTML/WikiText之外,还有其他方法获取Wikipedia文章的第一段吗?

我找不到通过API实现这一点的方法,所以我求助于解析HTML,使用。这很简单,在以下几行中:

$doc = new DOMDocument();
$doc->loadHTML($wikiPage);
$xpath = new DOMXpath($doc);
$nlPNodes = $xpath->query('//div[@id="bodyContent"]/p');
$nFirstP = $nlPNodes->item(0);
$sFirstP = $doc->saveXML($nFirstP);
echo $sFirstP; // echo the first paragraph of the wiki article, including <p></p>
$doc=newDOMDocument();
$doc->loadHTML($wikiPage);
$xpath=新的DOMXpath($doc);
$nlPNodes=$xpath->query('//div[@id=“bodyContent”]/p');
$nFirstP=$nlPNodes->item(0);
$sFirstP=$doc->saveXML($nFirstP);
echo$sFirstP;//回应维基文章的第一段,包括


使用API只可能获得文章的“简介”,参数为
rvsection=0
as

将Wiki文本转换为HTML有点困难;我想还有更完整的/官方的方法,但这就是我最终要做的:

// remove templates (even nested)
do {
    $c = preg_replace('/[{][{][^{}]+[}][}]\n?/', '', $c, -1, $count);
} while ($count > 0);
// remove HTML comments
$c = preg_replace('/<!--(?:[^-]|-[^-]|[[[^>])+-->\n?/', '', $c);
// remove links
$c = preg_replace('/[[][[](?:[^]|]+[|])?([^]]+)[]][]]/', '$1', $c);
$c = preg_replace('/[[]http[^ ]+ ([^]]+)[]]/', '$1', $c);
// remove footnotes
$c = preg_replace('#<ref(?:[^<]|<[^/])+</ref>#', '', $c);
// remove leading and trailing spaces
$c = trim($c);
// convert bold and italic
$c = preg_replace("/'''((?:[^']|'[^']|''[^'])+)'''/", $html ? '<b>$1</b>' : '$1', $c);
$c = preg_replace("/''((?:[^']|'[^'])+)''/", $html ? '<i>$1</i>' : '$1', $c);
// add newlines
if ($html) $c = preg_replace('/(\n)/', '<br/>$1', $c);
//删除模板(即使是嵌套的)
做{
$c=preg_replace('/[{][{][^{}]+[}][}]\n?/',''$c,-1,$count);
}而($count>0);
//删除HTML注释
$c=预替换('/\n?/','$c);
//删除链接
$c=preg_replace('/[[][[[](?:[^]+[[124])?([^]+)[]]][]][]]]/','$1',$c);
$c=preg_replace('/[]http[^]+([^]]+)[]]/','$1',$c);
//删除脚注

$c=preg_replace('#使用此链接以xml形式获取未解析的介绍 "http://en.wikipedia.org/w/api.php?format=xml&action=query&prop=extracts&exsentences=10&titles=Aati 卡伦加“


早些时候,我可以通过添加带有src的iframe(如上面的链接)在一个页面中引入一个类别的主题/文章列表。但是现在chrome抛出了这个错误——“拒绝显示文档,因为X-Frame-Options禁止显示。”有什么办法吗?请帮助。

正如ARAVIND VR所指出的那样,在运行的Wiki上(包括Wikipedia),您可以很容易地通过获取文章的摘录

例如,将给您一个JSON包装中的的简短摘录


查询的各种选项可用于控制摘录格式(HTML或纯文本)、其最大长度(以字符和/或句子为单位,并可选择将其限制在文章的简介部分)以及输出中章节标题的格式。也可以在一次查询中从多篇文章中获取简介摘录。

您应该使用
action=render
url参数;这样您需要加载的内容就更少了。此外,摘录通常不是第一段,而是第一段之前的任何内容。
r第二段听起来像是一个问题,而不是一个答案。如果你想得到答案,你应该把它作为一个新问题发布。尽管如此,在你的第一段中提到
prop=extracts
,还是+1。(我只是在下面发布了一个更详细的描述。)您还可以添加exintro属性以仅获取简介:下面是一个无服务器示例,它从随机的Wikipedia文章中获取前N个字符。这并不完全是您想要的,但可能会有所帮助:谢谢,这就是我要找的,完美的API。