|
|
|
| Привет!
Вот таким кодом я читаю контент со страницы:
$content = '';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt(
$curl,
CURLOPT_HTTPHEADER,
Array(
'User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:8.0.1) Gecko/20100101 Firefox/8.0.1' . "\r\n",
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' . "\r\n",
'Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3' . "\r\n",
'Accept-Encoding: gzip, deflate' . "\r\n",
'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7' . "\r\n",
'Connection: keep-alive' . "\r\n",
"\r\n",
"\r\n"
)
);
curl_setopt($curl, CURLOPT_COOKIEJAR, "filecookie");
curl_setopt($curl, CURLOPT_COOKIEFILE, "filecookie");
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_NOBODY, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$content = curl_exec($curl);
$handle = curl_copy_handle($curl);
echo $handle . '<br>';
echo $content . '<br>';
curl_close($curl);
return $content;
|
Страница считывается нормально, но что-то происходит с нужными мне ссылками, которые расположены в теле текста страницы. Причём, что интересно, когда скрипт работает на домашнем серваке под виндой, то ссылки нормальные, не битые, а как только запускаю скрипт на хостинге, нужные ссылки битые.
Как быть, что делать? Хост как-то определяет, что контент читает бот, а не браузер и выдаёт битые ссылки. | |
|
|
|
|
|
|
|
для: uriy
(26.12.2011 в 16:01)
| |
$content = '';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt(
$curl,
CURLOPT_HTTPHEADER,
Array(
'User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:8.0.1) Gecko/20100101 Firefox/8.0.1' . "\r\n",
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' . "\r\n",
'Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3' . "\r\n",
'Accept-Encoding: gzip, deflate' . "\r\n",
'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7' . "\r\n",
'Connection: keep-alive' . "\r\n",
"\r\n",
"\r\n"
)
);
curl_setopt($curl, CURLOPT_COOKIEJAR, "filecookie");
curl_setopt($curl, CURLOPT_COOKIEFILE, "filecookie");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$content = curl_exec($curl);
$handle = curl_copy_handle($curl);
echo $handle . '<br>';
echo $content . '<br>';
curl_close($curl);
return $content;
|
Немножко поправил код. Вот щас всё верно. | |
|
|
|
|
|
|
|
для: uriy
(26.12.2011 в 16:01)
| | Возможно уже IP-адрес забанен, или он дергает whois-сервер и "видит", что это подсеть принадлежит хост-провайдеру, а не обычному провайдеру. | |
|
|
|
|