2015-09-07 4 views
0

я хочу разобрать веб-сайт, но Я всегда получаю сообщение об ошибке: услуга не работает.Ошибка анализа HTML: обслуживание не работает - при попытке разобрать сайт

Независимо от того, какую начальную или конечную строку я даю. Я также попытался использовать другой URL-адрес, и я скопировал полные примеры от других пользователей, которые работают на них , но не для меня. Я также пытался увеличить размер до 20000. Но ничего не работает.

Вот мой PHP-скрипт:

<?php 
// URL, die durchsucht werden soll 
$url = "http://cordis.europa.eu/project/rcn/85400_en.html"; 

// Zeichenfolge vor relevanten Einträgen 
$startstring = "<div class='tech'><p>"; 

// bis zum nächsten html tag bzw. Zeichenfolge nach relevanten Einträgen 
$endstring = "<"; 

$file = @fopen ($url,"r"); 

if($file) 
{ 
    echo "URL found<br>"; 
} 

if (trim($file) == "") { 
    echo "Service out of order - File:".$file."<br>"; 
    } else { 
    $i=0; 
    while (!feof($file)) { 

     // Wenn das File entsprechend groß ist, kann es unter Umständen 
     // notwendig sein, die Zahl 2000 entsprechend zu erhöhen. Im Falle 
     // eines Buffer-Overflows gibt PHP eine entsprechende Fehlermeldung aus. 

     $zeile[$i] = fgets($file,20000); 
     $i++; 
    } 
    fclose($file); 
} 

// Data filtering 

for ($j=0;$j<$i;$j++) { 
    if ($resa = strstr($zeile[$j],$startstring)) { 
     $resb = str_replace($startstring, "", $resa); 
     $endstueck = strstr($resb, $endstring); 
     $resultat .= str_replace($endstueck,"",$resb); 
     $resultat .= "; "; 
    } 
} 

// Data output 

echo ("Result = ".$resultat."<br>"); 
return $resultat; 

Любая помощь ценят. заранее спасибо

EDIT: URL найден и файл имеет значение: идентификатор ресурса # 3

+0

Какие данные вы хотите от сайта ?? –

+0

Попробуйте DOMDocument –

+0

Я просто хочу простой текст. его как описание на веб-сайте. его под Objective, если вы смотрите на страницу –

ответ

-1

Используйте это он даст ожидаемый выход.

<?php 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,"http://cordis.europa.eu/project/rcn/85400_en.html"); 
curl_setopt($ch, CURLOPT_GET, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_ENCODING, ''); 

$headers = array(); 
$headers[] = 'Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'; 
$headers[] = 'Accept-Encoding:gzip, deflate, sdch'; 
$headers[] = 'Accept-Language:en-US,en;q=0.8'; 
$headers[] = 'Cache-Control:max-age=0'; 
$headers[] = 'Connection:keep-alive'; 
$headers[] = 'Cookie:CORDIS=14.141.177.158.1441621012200552; PHPSESSID=jrf2e3t4vu56acdkf9np0tat06; WT_FPC=id=14.141.177.158-1441621016.978424:lv=1441605951963:ss=1441604805004 
Host:cordis.europa.eu'; 
$headers[] = 'User-Agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.134 Safari/537.36'; 
$headers[] = 'Host:cordis.europa.eu'; 
$headers[] = 'Request URL:http://cordis.europa.eu/project/rcn/85400_en.html'; 

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
$server_output = curl_exec($ch); 
curl_close($ch); 

$dom = new DOMDocument; 
$dom->loadHTML($server_output); 
$xpath = new DomXpath($dom); 

$div = $xpath->query("//*[@class='tech']")->item(0); 
$data = trim($div->textContent); 
echo $data; 
?> 

Выход

enter image description here

2

Попробуйте

<?php 
// URL, die durchsucht werden soll 
$url = "http://cordis.europa.eu/project/rcn/85400_en.html"; 

$html = file_get_contents($url); 

if ($html === false) { 
    //Service unavailable 
    echo 'Service unavailable'; 
    return; 
} 
$dom = new DOMDocument; 
$dom->loadHTML($html); 
$xpath = new DomXpath($dom); 

$div = $xpath->query("//*[@class='tech']")->item(0); 
$output = trim($div->textContent); 

// Data output 

echo ("Result = " . $output. "<br>"); 
return $output; 
+0

он дает нулевой результат –

+0

return $ resultat; пусто –

+0

Сервер перегружен сейчас ;-) –

Смежные вопросы