PHP +*:从*文章的第一段获取内容?
问题描述:
我正在尝试使用*的API(api.php)获取链接提供的*文章的内容(如:http://en.wikipedia.org/wiki/*)。 而我想要的是获得第一段(在* wiki文章的例子中是:Stack Overflow是Stack Exchange网络[2] [3]的网站组成部分,它提供了广泛的问题和解答计算机编程中的主题[4] [5] [6])。PHP +*:从*文章的第一段获取内容?
我打算对它进行一些数据处理。
我试过用API url:http://en.wikipedia.org/w/api.php?action=parse&page=*&format=xml,但它给了我一些错误。它输出:
<api>
<parse displaytitle="*" 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>
我发现这个代码片断,我试过
$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;
,但我不能在变量$ WIKIPAGE HTML内容。
我不知道这是否是最好的或最理想的方式来做到这一点,请随时评论,否则任何建议或解决方案将非常感激。
谢谢
- Mestika
答
你得到一个重定向页面的内容。用'Stack_Overflow'替换'*',它应该可以工作。
该API确实支持&重定向选项,该选项将为您解析重定向。
将'&section = 0'添加到您的API调用中可以减少您自己解析前导节的需求,它只返回第一个。 – Ainali 2014-07-19 14:20:33