Как получить HTML-код с URL имеет DnP Firewall (PHP) - PullRequest
0 голосов
/ 20 октября 2011

Я использовал file_get_contents и простой html dom (http://simplehtmldom.sourceforge.net), но не могу получить HTML этого URL:

http://forum.hui.vn/Thread-nhung-hanh-dong-ngo-ngan-cua-dan-ong-15824?action=lastpost

HTML-код, который я получил, - межсетевой экран DnP. Пожалуйста, помогитедля получения HTML-кода с URL есть межсетевой экран DnP. Спасибо!

1 Ответ

0 голосов
/ 20 октября 2011

В вашем решении должны быть включены файлы cookie.
Этот сайт пытается установить cookie-файл идентификатора сеанса, на который необходимо ответить, чтобы не получать новый сеанс каждый раз.

По сути, вам нужно проанализировать заголовок ответа сервера, который вы изначально получили, и отправить обратно тот же файл cookie в новом ответе. на место, указанное в форме «действие» на этой странице:

<form name=dnp_firewall method=get action=dnp_fw.php>
<input type=hidden value="/Thread-nhung-hanh-dong-ngo-ngan-cua-dan-ong-15824?action=lastpost" name="dnp_firewall_redirect">
<input type=submit value=" " alt="Click to continue to your destination" style="background-image:url(default.png); height:350px; width:575px; cursor:pointer; 

В этом случае вы бы сформировали свой ответ примерно так:

dnp_fw.php?dnp_firewall_redirect=/Thread-nhung-hanh-dong-ngo-ngan-cua-dan-ong-15824?action=lastpost&submit=%20

Тогда вам нужно будет обработать любые перенаправления, которые происходят в результате этих действий ..

Я бы также предложил настроить ваш UserAgent на что-то общее, например:

Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.202 Safari/535.1

Или вы можете просто использовать Curl http://php.net/manual/en/book.curl.php

...