如何解决PHP + Wikipedia:从Wikipedia文章的第一段中获取内容?
| 我正在尝试使用Wikipedia的API(api.php)来获取由链接(例如:http://en.wikipedia.org/wiki/Stackoverflow)提供的Wikipedia文章的内容。 我想要的是第一段(在Stackoverflow Wiki文章的示例中为:Stack Overflow是Stack Exchange网络的网站部分[2] [3],其中包含有关以下主题的问答)计算机编程。[4] [5] [6])。 我将使用它进行一些数据操作。 我尝试使用API网址:http://en.wikipedia.org/w/api.php?action=parse&page=Stackoverflow&format=xml,但这给了我一些错误。它输出:<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>
我找到了我尝试过的这段代码
$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内容。
我不知道这是最好还是最理想的方式,因此请随时对此发表评论,否则任何建议或解决方案将不胜感激。
谢谢
-梅斯蒂卡
解决方法
您正在获取重定向页面的内容。将\'Stackoverflow \'替换为\'Stack_Overflow \',它应该可以工作。
该API确实支持&redirects选项,该选项将为您解决重定向。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。