[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Парсер с использоанием cURL
began
Есть рабочий Парсер, но севрак откуда парситься контент забанил ip

Посоветовали использовать cUrl
Вот используемая функция

function get_contents($url,$post=''){ 

$proxy = '89.248.***.***:3128';
//$proxy = '';
$proxy_userpwd = 'user:*******';
$proxy_type = 'http';

$url = str_replace(' ', '+', $url);

$ch = curl_init();
if ($proxy !== '') {
curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_BASIC);
if ($proxy_type == 'socks') {
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
}
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxy_userpwd);
}
if ($post!=='') {
curl_setopt($ch, CURLOPT_POST,TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
}

curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_NOBODY, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8");
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$result = curl_exec($ch);

if (curl_errno($ch)!==0) {
$er=curl_error($ch);
$ercode=curl_errno($ch);
echo "Error load page = $url ($er), code = ".$ercode.'.';

print_r(curl_getinfo($ch));
//$result=false;
};
curl_close($ch);

return $result;
}


На странице выдается такой error

Error load page = http://site.com/blabla.html (couldn't connect to host), code = 7.Array ( [url] => http://site.com/blabla.html [content_type] => [http_code] => 0 [header_size] => 0 [request_size] => 0 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 0.000356 [namelookup_time] => 0.000131 [connect_time] => 0 [pretransfer_time] => 0 [size_upload] => 0 [size_download] => 0 [speed_download] => 0 [speed_upload] => 0 [download_content_length] => -1 [upload_content_length] => -1 [starttransfer_time] => 0 [redirect_time] => 0 )

Использую проверенный прокси.
Подскажите в чем может быть причина?
Может подключение через cURL не правильное?



Спустя 1 час, 20 минут, 8 секунд (22.02.2011 - 14:05) Evilsoul написал(а):
couldn't connect to host - не могу подключится к серверу, отсюда вывод, проблема в подключении.
$ch = curl_init('Здесь должен быть УРЛ (желательно полный)'); 

Спустя 38 минут, 17 секунд (22.02.2011 - 14:44) began написал(а):
Цитата (Evilsoul @ 22.02.2011 - 11:05)
couldn't connect to host - не могу подключится к серверу, отсюда вывод, проблема в подключении.
$ch = curl_init('Здесь должен быть УРЛ (желательно полный)'); 

Добавил url 'http://site.com".$search.".html'

получается тоже результат.
как же решить проблему с конектом ?

Спустя 43 минуты, 9 секунд (22.02.2011 - 15:27) Evilsoul написал(а):
что в переменной $search?
для проверки напиши так:
$ch = curl_init('http://www.google.com/'); 

Спустя 35 минут, 23 секунды (22.02.2011 - 16:02) began написал(а):
Цитата (Evilsoul @ 22.02.2011 - 12:27)
что в переменной $search?
для проверки напиши так:
$ch = curl_init('http://www.google.com/'); 

переменная $search - в ней поисковой запрос - каторый юзер сделал на сайте.
поиск делается по разным сайтам и если запрос совпадает с контентом на сайте то этот контент парситься.

сделал проверку
$ch = curl_init('http://www.google.com/'); 


выдало

Error load page = http://www.google.com/ (couldn't connect to host), code = 7.Array ( [url] => http://www.google.com/ [content_type] => [http_code] => 0 [header_size] => 0 [request_size] => 0 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 0.000342 [namelookup_time] => 0.000133 [connect_time] => 0 [pretransfer_time] => 0 [size_upload] => 0 [size_download] => 0 [speed_download] => 0 [speed_upload] => 0 [download_content_length] => -1 [upload_content_length] => -1 [starttransfer_time] => 0 [redirect_time] => 0 )

сейчас установил cUrl на денер
проверил сам скрипт.

скрипт работает, все парсит нормально

на хостинге не пашет.
Написал в сапорт,
они проверили сказали что фаервол ничего не банит,
выделили новый IP

Может что то нужно дописать что бы была нормальная имитация браузера с куками ?

Спустя 12 минут, 48 секунд (22.02.2011 - 16:15) Evilsoul написал(а):
напиши на сервере phpinfo(); и посмотри подключена ли библиотека cURL.

Спустя 30 минут, 29 секунд (22.02.2011 - 16:46) began написал(а):
Цитата (Evilsoul @ 22.02.2011 - 13:15)
напиши на сервере phpinfo(); и посмотри подключена ли библиотека cURL.

проверил
cURL support enabled
cURL Information libcurl/7.21.0 OpenSSL/0.9.8q zlib/1.2.3 libidn/0.6.5

Наверное проблема с хостингом раз даже к google не подключается, да и не только. У меня на денвере при подключении к google выдает пустую страницу без errors.

Этот скрипт работал на этом хостинге неделю назад без проблем, пока не забанили ip

Подскажите что сапорт написать ? что им нужно проверить на работоспособность?

Спустя 18 минут, 26 секунд (22.02.2011 - 17:04) Evilsoul написал(а):
Так и напиши, что проблема с инициализацией курла, все сервера отвергает, пускай исправляют баги, это их работа и уровень.

Спустя 1 день, 1 час, 43 минуты, 31 секунда (23.02.2011 - 18:47) began написал(а):
Цитата (Evilsoul @ 22.02.2011 - 14:04)
Так и напиши, что проблема с инициализацией курла, все сервера отвергает, пускай исправляют баги, это их работа и уровень.

Сапорт отписался

The connection failures are due to the proxy attempting to use port 3128, which is not open on our shared and reseller servers. Unfortunately, we cannot open any custom ports for incoming traffic (although outgoing ports can be opened with no issues).

данном случае сайт откуда парситься контент блокирует мой ip.
хостинг где размещается сайт не дает использоать подключение через прокси

Может есть еще какие нибуть способы прятать ip? не используя прокси?

Спустя 1 час, 17 минут, 15 секунд (23.02.2011 - 20:05) Evilsoul написал(а):
А что ты парсишь?
попробуй так, смотря что нужно:
get_headers('URL');
file('URL');
// или
file_get_contents('URL');
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.