CURL парсер + PROXY

12
J
На сайте с 18.10.2010
Offline
46
5402

Здравствуйте.

Подскажите, пожалуйста, как реализовать в парсере на CURL то, чтобы он парсил через прокси? Нужно, чтобы парсилось по списку прокси: новый запрос - новый прокси по порядку ( например текстовый файл со списком прокси ). Тоесть нужно при каждом запросе парсера ставить новый прокси из списка прокси по порядку. Если список прокси в текстовом файле закончился , то начинаем опять с первого прокси и так по кругу по порядку сверху вниз из списка.

Вот код:

public function check($url)

{

$ch = curl_init("тут url откуда парсим");

curl_setopt($ch, CURLOPT_HEADER, 0);

curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

$result = curl_exec($ch);

if(curl_errno($ch) != 0)

die("curl_errno(".curl_errno($ch)."), curl_error(".curl_error($ch).")");

curl_close($ch);

return substr($result, 9);

}

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#1
как реализовать

Руками, чем ещё то?

Или за вас код написать надо что-ли?

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
J
На сайте с 18.10.2010
Offline
46
#2
LEOnidUKG:
Или за вас код написать надо что-ли?

Желательно с кодом помочь :)

TitanIKS
На сайте с 25.01.2013
Offline
46
#3

public function check($url)

{

$proxy = 'Адрес прокси';

$ch = curl_init("тут url откуда парсим");

curl_setopt($ch, CURLOPT_HEADER, 0);

curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);

curl_setopt($ch, CURLOPT_PROXY, $proxy);

$result = curl_exec($ch);

if(curl_errno($ch) != 0)

die("curl_errno(".curl_errno($ch)."), curl_error(".curl_error($ch).")");

curl_close($ch);

return substr($result, 9);

}

J
На сайте с 18.10.2010
Offline
46
#4
TitanIKS:
public function check($url)
{
$proxy = 'Адрес прокси';
$ch = curl_init("тут url откуда парсим");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
$result = curl_exec($ch);
if(curl_errno($ch) != 0)
die("curl_errno(".curl_errno($ch)."), curl_error(".curl_error($ch).")");
curl_close($ch);
return substr($result, 9);
}

Спасибо :) Надеюсь будет работать - попробую :)

TitanIKS
На сайте с 25.01.2013
Offline
46
#5

А если рандомно брать из списка, то так

public function check($url)

{

$proxy = file('proxy.dat');

shuffle($proxy);

$ch = curl_init("тут url откуда парсим");

curl_setopt($ch, CURLOPT_HEADER, 0);

curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);

curl_setopt($ch, CURLOPT_PROXY, $proxy[0]);

$result = curl_exec($ch);

if(curl_errno($ch) != 0)

die("curl_errno(".curl_errno($ch)."), curl_error(".curl_error($ch).")");

curl_close($ch);

return substr($result, 9);

}

J
На сайте с 18.10.2010
Offline
46
#6
TitanIKS:
А если рандомно брать из списка, то так

public function check($url)
{
$proxy = file('proxy.dat');
shuffle($proxy);
$ch = curl_init("тут url откуда парсим");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curl_setopt($ch, CURLOPT_PROXY, $proxy[0]);
$result = curl_exec($ch);
if(curl_errno($ch) != 0)
die("curl_errno(".curl_errno($ch)."), curl_error(".curl_error($ch).")");
curl_close($ch);
return substr($result, 9);
}

Спасибо большое Вам!

TitanIKS
На сайте с 25.01.2013
Offline
46
#7

Пожалуйста

J
На сайте с 18.10.2010
Offline
46
#8
TitanIKS:
А если рандомно брать из списка, то так

public function check($url)
{
$proxy = file('proxy.dat');
shuffle($proxy);
$ch = curl_init("тут url откуда парсим");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curl_setopt($ch, CURLOPT_PROXY, $proxy[0]);
$result = curl_exec($ch);
if(curl_errno($ch) != 0)
die("curl_errno(".curl_errno($ch)."), curl_error(".curl_error($ch).")");
curl_close($ch);
return substr($result, 9);
}

proxy.dat - это адрес списка прокси. Немного не понял :)

И ещё: как лучше попорядку или рандомно прокси брать? Наверное зависит от количества прокси в списке?

Д
На сайте с 01.04.2012
Offline
167
#9
Jacker:
proxy.dat - это адрес списка прокси. Немного не понял :)

И ещё: как лучше попорядку или рандомно прокси брать? Наверное зависит от количества прокси в списке?

В .dat файле список прокси.

J
На сайте с 18.10.2010
Offline
46
#10
Дадуда:
В .dat файле список прокси.

Извините, пожалуйста, но где прописывать адрес этого .dat файла в коде?

---------- Добавлено 07.03.2013 в 14:34 ----------

Тоесть, где на сервере должен находиться файл proxy.dat?

---------- Добавлено 07.03.2013 в 15:06 ----------

Я создал файл proxy.dat со списком прокси ( файл сделал из .txt файла ) - каждый прокси с новой строки.

Есть код представленный пользователем TitanIKS - прокси с рандомным выводом:

public function check($url)

{

$proxy = file('proxy.dat');

shuffle($proxy);

$ch = curl_init("тут url откуда парсим");

curl_setopt($ch, CURLOPT_HEADER, 0);

curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);

curl_setopt($ch, CURLOPT_PROXY, $proxy[0]);

$result = curl_exec($ch);

if(curl_errno($ch) != 0)

die("curl_errno(".curl_errno($ch)."), curl_error(".curl_error($ch).")");

curl_close($ch);

return substr($result, 9);

}

Вопрос: куда ложить файл proxy.dat? Пожалуйста, подскажите!

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий