gpt4 book ai didi

mysql - 如何下载维基百科中一个类别内的所有页面?

转载 作者:行者123 更新时间:2023-11-28 23:24:12 26 4
gpt4 key购买 nike

我想检索维基百科类别中的所有文章 url(我不需要整个文本)。

例如,如果我想获取以下类别的所有文章网址:https://en.wikipedia.org/wiki/Category:History ,最好的方法是什么?

是否需要下载整个 mysql 转储并进行手动查询?

最佳答案

如果您不介意使用 PHP 来帮助解决这个问题,addwiki/mediawiki-api图书馆有一个系统可以递归检索给定类别中的所有页面。类似于以下内容:

$api = new \Mediawiki\Api\MediawikiApi( 'http://en.wikipedia.org/w/api.php' );
$services = new \Mediawiki\Api\MediawikiFactory( $api );
$categoryTraverser = $services->newCategoryTraverser();

// Get the root category.
$rootCatIdent = new PageIdentifier( new Title( 'Category:History' ) );
$rootCat = $this->factory->newPageGetter()->getFromPageIdentifier( $pageIdentifier );

// Get all page URLs:
$allPages = $categoryTraverser->descend( $rootCat );
foreach ($allPages->toArray() as $page) {
echo 'https://en.wkipedia.org/wiki/'.$page->getPageIdentifier()->getTitle()->getText();
}

关于mysql - 如何下载维基百科中一个类别内的所有页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40119322/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com