有没有更好的方法从维基百科中获取特定章节的文本内容。我有下面的代码可以跳过一些部分,但是这个过程花费了太长的时间来获取数据。
for($i=0;$i>10;$i++){
if($i != 2 || $i != 4){
$url = 'http://en.wikipedia.org/w/api.php?action=parse&page=ramanagara&format=json&prop=text§ion='.$i;
$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->{'parse'}->{'text'}->{'*'};
print preg_replace('/<\/?a[^>]*>/','',$content);
}
}发布于 2013-12-06 18:22:53
首先,您告诉这个循环,直到$i大于10,实际上,循环将一直循环到服务器请求超时为止。将其更改为$i<10,或者如果只需要几个部分,请尝试:
foreach (array(1,3,5,6,7) as $i)
//your code其次,将JSON解码为一个关联数组,如下所示:
$json = json_decode($c, true);
并且像$json['parse']['text']['*']一样引用它更容易,但这取决于您。
第三,您会发现strip_tags()的功能可能比用正则表达式剥离标记更快、更准确。
https://stackoverflow.com/questions/20425851
复制相似问题