Lo ideal sería que hicieras una petición inicial para parsear la tabla y sacar los links. Una vez que hace eso, lanzar peticiones a cada una de las paginas. Son cerca de 1000 peticiones por lo que vas a tener que darle un delay de 500-1000 ms para que no te bloquee su servidor.
Edit: Me puse a jugar un poco con un script, estaba un poco aburrido:
http://pastebin.com/yfmQKyfb<?php
include 'Petition.php';
class Test {
public static function init(){
$petition = new Petition('http://www.cece.gva.es/ocd/areacd/es/consulta01.asp');
$petition->enableTransfer(true);
$data = $petition->process();
foreach($matches[1] as $cod){
$pet = new Petition('http://www.cece.gva.es/ocd/areacd/es/centro.asp?codi='.$cod);
$pet->enableTransfer(true);
$dom = @DOMDocument::loadHTML($pet->process());
$domElement = $dom->getElementById('contenidoInferior');
$node = $domElement->getElementsByTagName('table')->item('2')->childNodes->item('3')->childNodes->item('2');
echo $node->nodeValue . '; ';
}
}
}
Test::init();
?>
<?php
class Petition {
private $handler;
private $url;
public function __construct($url = null){
if($url){
$this->setUrl($url);
}
}
public function __destruct(){
}
public function setOption($optName, $value){
}
public function setUrl($url){
$this->url = $url;
$this->setOption(CURLOPT_URL, $url);
}
public function enableTransfer($val){
$this->setOption(CURLOPT_RETURNTRANSFER, $val);
}
public function setUserAgent($val){
$this->setOption(CURLOPT_USERAGENT, $val);
}
public function setReferer($val){
$this->setOption(CURLOPT_REFERER, $val);
}
public function getUrl(){
return $this->url;
}
public function process(){
if($result === false){
}
return $result;
}
}
?>
Realmente no es necesario la clase Petition. Puedes usar fopen o similar.