Если поместить два URL после одного параметра --proxy, оба пойдут через один прокси. Когда каждой загрузке нужен свой маршрут, задайте curl границу передачи:

curl --proxy http://203.0.113.10:8080 \
  --output first.html https://example.com/ \
  --next \
  --proxy http://203.0.113.20:8080 \
  --output second.html https://example.org/

Оба адреса прокси являются заполнителями; выберите HTTP-конечные точки своего сервиса или из списка HTTP-прокси. Параметр --next начинает другую передачу с новым набором локальных параметров. Явно укажите второй прокси. Параметр, заданный до границы, возможно, придётся задать повторно после неё.

Это последовательный пример. По нему легко проверить соответствие назначения, файла вывода и прокси. curl поддерживает и параллельные передачи, но параллельность меняет планирование и не выбирает прокси для каждого URL автоматически.

Осторожно с текстовым файлом пар

Строка с proxy-address destination-url — формат вашего приложения. curl не выводит смысл этих столбцов из произвольного текста. Цикл shell, созданная конфигурация curl или другой небольшой диспетчер должны преобразовать каждую запись в явные параметры.

Сохраняйте аргументы аргументами. Построение команды конкатенацией недоверенных URL позволяет пробелам или символам shell изменить её смысл. Для повторяющихся задач документированный синтаксис конфигурационного файла curl проще проверять, чем длинную строку, собранную вручную.

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

Похожие статьи