Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
33 / 33 / 15
Регистрация: 07.05.2014
Сообщений: 313
1

Рандомный прокси в парсере

26.09.2018, 09:31. Просмотров 1020. Ответов 1

Всем добра, прошупомощи поскольку потратил ночь и ничего не придумал.

Итак, суть проблемы (весь код в спойлер закину внизу):

Делаю парсер. Сайт начал выводить капчу.
Кормлю прокси кодом
PHP
1
curl_setopt($ch, CURLOPT_PROXY, '204.48.26.161:8080');
И все норм работает.
Хочу кормить рандомный прокси.

И пробую статично

PHP
1
2
$pro='204.48.26.161:8080';
curl_setopt($ch, CURLOPT_PROXY, $pro);
И выводит капчу.

Не пойму в чем фишка этой ситуации. Магия.

Пробовал:
  • Вывести вместо переменной элемент массива
  • Другую переменную юзать
  • Проверить содержимое переменной перед использованием
  • Внутрь переменной кавычки засунуть (чем PHP не шутит)


Код функции целиком
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?
$lines = file('proxy.txt'); //Здесь прокси списком в массив кидаем
$rmax=count($lines); //берем длину массива
$proxyn=rand(0, $rmax); //чтоб рандомно выбрать элемент массива генерим число
$pro=$lines[$proxyn]; //В переменную кидаем элемент массива
$pro=preg_replace('/\s/', '', $pro); //Удаляем всю нечисть из строки, типа пробелов и переносов строки
echo "'".$pro."'"; //Проверяем что в переменной есть
//var_dump($lines[$proxyn]);
//global $pro[0];
 
 
function get_data($url) 
{
    $ch = curl_init();
    $timeout = 30;
    
    curl_setopt($ch, CURLOPT_PROXY, $pro);
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,false);
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
    curl_setopt($ch,CURLOPT_POST,false);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:10.0) Gecko/20100101 Firefox/10.0");
    
    //curl_exec($ch);
    $dom = new simple_html_dom(curl_exec($ch));
    //print_r( $dom );
    curl_close($ch);
    return $data;
}
 
 
?>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.09.2018, 09:31
Ответы с готовыми решениями:

Выбрать рандомный ip в файле и сделать tcp подключение через него (т.е. через прокси)
Хотел спросить, есть список ip адресов в файле. Как можно выбрать рандомный ip в файле и сделать...

Ошибка в парсере
Вот код: #!/usr/bin/env python3 import time from urllib.request import urlopen from...

Ошибка в парсере
Добрый день, есть парсер, все работает отлично. Надо вытащить ссылку &quot;/news/issue/2017-07-28&quot; из...

Ошибка в парсере формулы
Здравствуйте! Помогите понять, где ошибка, пожалуйста... Пишу обозреватель дерева парсера...

__________________

Записывайтесь на профессиональные курсы Fullstack-разработчиков на PHP‌
1
Эксперт PHP
4463 / 3323 / 1085
Регистрация: 06.01.2011
Сообщений: 9,543
26.09.2018, 09:50 2
Дело в области видимости: http://php.net/manual/ru/langu... .scope.php
В теле функции переменная $pro не видна.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.09.2018, 09:50

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

ошибки в программе парсере
привет собственно вот такой вот код import requests from bs4 import BeautifulSoup import csv...

Не работает функция в парсере
Есть 4 условия парсинга, в зависимости от условия нужно парсить ту или иную инфу со страницы. Хотел...

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

Кодировка кириллицы в парсере
Привет. не пойму в чем дело. простой парсер на curl. сайт в windows-1251. во время парсинга...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.