2013-03-27 3 views
1

Я пытаюсь прочитать листы с веб-страницы. Чтобы создать статистику для нашей команды, я хочу автоматически сохранить результаты в своей собственной базе данных. Например. http://fvbw.sm-u.de/index.php?seite=game&game=568Захватите содержимое странно защищенной веб-страницы

Я попытался получить содержание страницы с помощью нескольких опций в PHP (curl, file, file_get_contents и т. Д.), Но я всегда прихожу со странным поведением. Фактические баллы отображаются в контейнере <div id="inhalt"></div> при просмотре в браузере. Но когда я получаю страницу через PHP, контейнер всегда пуст.

Моя первая мысль заключалась в том, что содержимое перезагружается через JS. Но я не могу найти никаких вызовов JS! Также Firebug не отслеживает такую ​​активность. Также не используется контент атрибута CSS или что-то еще.

Может кто-нибудь сказать мне, что там происходит? И как я могу захватить содержимое этой страницы через PHP?

Update (2013-03-27 12:05):

Вот мой код, который использует те же заголовки в просьбе Firefox. Это возвращает тот же неполный результат.

$curl = curl_init(); 
$header[] = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; 
$header[] = "Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3"; 
$header[] = "Accept-Encoding: deflate"; 
$header[] = "Referer: http://fvbw.sm-u.de/index.php?seite=table&table=15"; 
$header[] = "Connection: keep-alive"; 
$header[] = "Cache-Control: max-age=0"; 
$header[] = "Host: fvbw.sm-u.de"; 

curl_setopt($curl, CURLOPT_URL, $url); 
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0"); 
curl_setopt($curl, CURLOPT_HTTPHEADER, $header); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 

$data = curl_exe($curl); 

Еще одна странная вещь, которая происходит. При использовании HttpRequester (Firefox Addon) я просто набираю url и выполняю запрос, и он дает мне правильный результат. Необработанный запрос выглядит так:

GET http://fvbw.sm-u.de/index.php?seite=game&game=571 

Нет заголовков, ничего. Если я сделаю это с помощью curl, я все равно получу неполную страницу.

+0

Убедитесь, что один HTTP-запрос возвращает требуемый контент с помощью средств разработки вашего браузера. Затем напишите код, который точно дублирует этот HTTP-запрос, используя 'curl' (заголовки, содержимое, все). – Jon

+0

вы можете показать нам php-код, где вы задаете параметры завитка? –

ответ

0

Не уверен, что этот вопрос является актуальным или нет. Я могу получить контент, обычно используя:

echo file_get_contents('http://fvbw.sm-u.de/index.php?seite=game&game=568'); 
+0

Да, это на самом деле работает для вышеуказанной страницы. Кроме того, используя контекст потока, даже позвольте мне передать файлы cookie для доступа к страницам, защищенным паролем. – signpainter

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