Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xpath PHP+;维基百科:从维基百科文章的第一段获取内容?_Xpath_Domdocument_Wikipedia_Wikipedia Api_Domxpath - Fatal编程技术网

Xpath PHP+;维基百科:从维基百科文章的第一段获取内容?

Xpath PHP+;维基百科:从维基百科文章的第一段获取内容?,xpath,domdocument,wikipedia,wikipedia-api,domxpath,Xpath,Domdocument,Wikipedia,Wikipedia Api,Domxpath,我试图使用Wikipedia的API(API.php)来获取由链接(如:)提供的Wikipedia文章的内容。 我想得到的是第一段(在Stackoverflow wiki文章的示例中是:Stack Overflow是Stack Exchange网络[2][3]的一个网站部分,提供关于计算机编程中广泛主题的问答。[4][5][6]) 我要用它做一些数据处理 我试过使用API url:但它给了我一些错误。它输出: <api> <parse displaytitle="Stackov

我试图使用Wikipedia的API(API.php)来获取由链接(如:)提供的Wikipedia文章的内容。 我想得到的是第一段(在Stackoverflow wiki文章的示例中是:Stack Overflow是Stack Exchange网络[2][3]的一个网站部分,提供关于计算机编程中广泛主题的问答。[4][5][6])

我要用它做一些数据处理

我试过使用API url:但它给了我一些错误。它输出:

<api>
<parse displaytitle="Stackoverflow" revid="289948401">
<text xml:space="preserve">
<ol> <li>REDIRECT <a href="/wiki/Stack_Overflow" title="Stack Overflow">Stack Overflow</a></li> </ol> <!-- NewPP limit report Preprocessor node count: 1/1000000 Post-expand include size: 0/2048000 bytes Template argument size: 0/2048000 bytes Expensive parser function count: 0/500 --> <!-- Saved in parser cache with key enwiki:pcache:idhash:21772484-0!*!0!!*!* and timestamp 20110525165333 -->
</text>
<langlinks/>
<categories/>
<links>
<pl ns="0" exists="" xml:space="preserve">Stack Overflow</pl>
</links>
<templates/>
<images/>
<externallinks/>
<sections/>
</parse>
</api>
但是我无法在变量$wikiPage中获取HTML内容

我不知道这是否是最好的或最理想的方式,所以请随意评论,否则任何建议或解决方案都将不胜感激

谢谢你

-Mestika

您将获得重定向页面的内容。将“Stackoverflow”替换为“Stack_Overflow”,它应该可以工作


API确实支持&redirects选项,该选项将为您解析重定向。

§ion=0
添加到API调用中可以减少您自己解析lead部分的需要,它只返回第一个部分。
$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;