Интересует как программа взаимодействует с прокси, чтобы иметь возможность настроить парсеры под конкретный вид прокси (паблик, приват, и т.д.) Для примера рассматриваю приватные прокси с фиксированным айпи (т.е. проверка на живость не особо нужна), положим я загрузил файлом 100 живых прокси. Вначале без чекера. 1. Каков порядок работы с прокси? Как я представляю (в упрощенном виде): по числу потоков одна из свободных прокси "назначается" на 1 поток, с прокси делается запрос, если он неудачный (ответ от гугла с капчей или прокси тупо не работает за время Request timeout) , то прокси "банится" в A-Parser'е на время Proxy ban time (что в это время происходит с потоком? Берется свободная прокси в списке? А если больше в списке нет?), запрос уходит в очередь на повтор по числу Request retries, в случае неудачи по числу попыток становится Failed. 2. Если прокси в списке оказалась дохлая (а чекер у нас выключен) то она так и будет занимать поток или забанится при первом неудачном запросе? 3. Request delay - задержка между запросами. В данном случае запрос это 1 страница по 100 результатов или все 10х100 = 1000 результатов? (при настройке Links per page 100, Pages count 10, парсер Google) 4. Если указано большее число потоков, чем прокси в списке, прокси берется по второму разу? Если чекер включен, 1. И ему дается 15 потоков (Check threads), а в общем у меня стоит 100 потоков, значит ли это, что в работе будет находиться только 85 прокси (т.е. потоков будет по факту 85)? 2. Чекер будет проверять все 100 прокси по мере освобождения потоков Check treads? 3. Что будет в случае нахождения мертвой прокси, в частности с активными потоками где эта прокся используется (Threads count)? И 1 не по теме вопрос: можно ли как то измерить скорость в урлах в секунду или в минуту? Сорри за длинный пост, просто хочется разобраться.
1. берется рандомная прокся из списка живых(если прокси не чекаются подразумевается что все живые), если проксей хватает поток будет ждать пополнения списка(в задании отображается как Wait proxy threads) прокси банится только если сервис который парсится отдает однозначную формулировку что этот IP забанен 2. она не может забаниться 3. каждый http запрос 4. количество потоков с количеством прокси никак не связаны(из п.1) 5. 15+100 - значит 115 будет потоков 6. все 100, по кругу, каждый Check interval 7. ну при следующем запросе прокси любым потоком мертвую он уже не увидет скорость измеряется в количестве обработанных запросов в минуту
По п. 2 уточнение - если она не может забаниться, и она дохлая, то будет браться и поток будет вхолостую молотить? И какую роль в таком случае играет Proxy Ban Time? Судя по http://a-parser.com/threads/919/ то на потоке будет получен ответ сервера вида "connection timed out" и она все таки уйдет в бан?
для каждого парсера логика своя, для большинства парсеров она следующая, если сервис говорит что IP забанен то прокси баниться на время Proxy ban time, в другом случае она не будет забанена т.е. если прокси дохлая то парсер просто возьмет следующую конкретно для Net::HTTP: если есть опция Check content и регулярка не срабатывает то прокси баниться, также если при использовании прокси парсер получает ошибку 59х(куда в т.ч. входят таймауты) то прокси так же будет баниться
А как насчёт добавить улучшение: если совпадение по регулярке найдено - значит бан? Бывает проще наоборот поступить. Создать темку улучшения, а? )
Рано обрадовался, я попробовал встречающееся слово, возликовал - Check ReGex not match Но если вставить не встречающееся - тож самое: Спойлер Т.е. такая регулярка не подходит для поиска признака бана. Или я что-то упустил из вида?
я проверил - в текущей версии проверка идет без флага /s, сейчас его можно форсировать: Код: ^(?s:(?!TETEREV).)*$ а в следующей версии уже будет работать с флагом /s
А в каких случаях отдается такая формулировка, как она выглядит? Признак бана это капча или что-то более жесткое? Чем грозит бан? Поясню подтекст - собираю через свои айпихи, используя капмонстр. Капмонстр не догружен до половины, хочется разогнать скорость. Можно ли ставить Proxy ban time в 0 или это чем-либо грозит? Спасибо. UPD Речь идет о парсерах выдачи гугла и яндекса и частотностей директ/вордстат.
признак бана - это когда Google или Yandex уже не показывает каптчу, а блокирует полностью доступ можно, но скорее всего это не изменит ситуацию