我如何从Mediwiki获取数据

| 嗨,我正在使用以下api从mediawiki获取数据。当我复制此URL并将其粘贴到浏览器中时,将出现xml响应。 http://en.wikipedia.org/w/api.php?action=query&prop=revisions&titles=API|Main_Page&rvprop=timestamp|user|comment|content 但是当我尝试使用curl时,会出现错误“脚本应使用带有联系信息的信息丰富的User-Agent字符串,否则它们可能被IP阻止,恕不另行通知。” 我为此使用以下代码。有人可以追踪我的错误吗?
$url=\'http://en.wikipedia.org/w/api.php?action=query&prop=revisions&titles=API|Main_Page&rvprop=timestamp|user|comment|content\';
$curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url); 
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        //curl_setopt($curl, CURLOPT_TIMEOUT, 1); 
        $objResponse = curl_exec($curl);
        curl_close($curl);

        echo $objResponse;die;
    
已邀请:
这将绕过引荐来源用户代理检查:
    <?php


    function getwiki($url=\"\", $referer=\"\", $userAgent=\"\") {
        if($url==\"\"||$referer==\"\"||$userAgent==\"\") { return false;};
        $headers[] = \'Accept: image/gif, image/x-bitmap, image/jpeg, image/pjpeg\';
        $headers[] = \'Connection: Keep-Alive\';
        $headers[] = \'Content-type: application/x-www-form-urlencoded;charset=UTF-8\';
        $user_agent = $userAgent;
        $process = curl_init($url);
        curl_setopt($process, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($process, CURLOPT_HEADER, 0);
        curl_setopt($process, CURLOPT_USERAGENT, $user_agent);
        curl_setopt($process, CURLOPT_REFERER, $referer);
        curl_setopt($process, CURLOPT_TIMEOUT, 30);
        curl_setopt($process, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1);
        $return = curl_exec($process);
        curl_close($process);
        return $return;
    }

    //edited to include Adam Backstrom\'s sound advice
    echo getwiki(\'http://en.wikipedia.org/w/api.php?action=query&prop=revisions&titles=API|Main_Page&rvprop=timestamp|user|comment|content\', \'http://en.wikipedia.org/\', \'Mozilla/5.0 (compatible; YourCoolBot/1.0; +http://yoursite.com/botinfo)\');

    ?>
    
从MediaWiki API:快速入门指南:   传递一个可以正确标识您的客户端的User-Agent标头:不要使用客户端库中的默认User-Agent,而是使用自定义的标头,其中包括您的客户端名称和版本号,例如MyCuteBot / 0.1。      在Wikimedia Wiki上,如果未能提供User-Agent标头或提供空或通用标头,则将导致请求失败,并显示HTTP 403错误。请参阅meta:User-Agent策略。其他MediaWiki Wiki可能具有类似的政策。 来自meta:User-Agent政策:   如果您运行的是漫游器,请发送一个User-Agent标头,以识别该漫游器并提供与您联系的方式,例如:User-Agent:MyCoolTool(+ http://example.com/MyCoolToolPage/)     

要回复问题请先登录注册