【问题标题】:parsing wikipedia categories解析维基百科类别
【发布时间】:2012-11-20 01:03:58
【问题描述】:

我正在尝试使用以下 URL 解析维基百科类别:

http://en.wikipedia.org/w/api.php?action=query&format=json&cllimit=max&prop=categories&titles=Albert%20Einstein

...其中“阿尔伯特·爱因斯坦”是任何维基百科页面

我遇到的问题是我不确定如何在不对 pageid 进行硬编码的情况下进行解析,pageid 是可变的(在本例中为“736” - 仅适用于该页面)。

注意:我今天刚开始学习 JSON,所以这可能很容易。

$page = $_GET['page'];
$page = str_replace('_',' ',$page);

$url = 'http://en.wikipedia.org/w/api.php?
action=query&format=json&cllimit=max&prop=categories&titles='.$page;

echo $url;

$ch = curl_init($url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_USERAGENT, "TestScript");

$c = curl_exec($ch);
$json = json_decode($c);

$content = $json->{'query'}->{'pages'}->{'736'}->{'categories'};

print_r ($content);

【问题讨论】:

  • 您的目标网页来自什么?你要随机吗?想要获得整个维基?您使用的 pageid 的密钥是什么?

标签: php json wikipedia


【解决方案1】:

人们会假设至少在理论上可以有多个页面,那么为什么不呢:

foreach ($json->{'query'}->{'pages'} as $page) {
    print_r ($page->{'categories'});
}

【讨论】:

    猜你喜欢
    • 2011-04-22
    • 1970-01-01
    • 2016-07-21
    • 1970-01-01
    • 1970-01-01
    • 2015-05-08
    • 2016-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多