Сайт vermittelerregsiter.info позволяет скачать PDF-файл обычным GET-запросом: например. https://www.vermittlerregister.info/recherche?a=pdf®isternummer=D-W-111-BHC1-55
Мы хотим автоматизировать это [для массовой загрузки] с помощью JAVA, но нам это не удалось.
Посмотрите некоторые, например. из того, что мы пробовали:
Все они возвращают веб-страницу, а не PDF-файл.
Я проверил, и оказалось, что сайт сначала проверяет, запрашивает ли бот или реальный пользователь (браузер), и только после этого возвращает PDF:
Когда я пытаюсь открыть ссылку PDF в браузере (Edge, а также в Chrome), то
(1) сначала открывается веб-страница [и там проверяется подлинность браузера] — мое предположение.
(2) когда я снова запрашиваю ту же ссылку (F5), файл действительно загружается. Последующие запросы загружают PDF-файлы немедленно.
Можем ли мы попробовать «двойной щелчок» или что-то подобное?
Проверка на наличие антиботов (на сервере дискорда) показала, что на сайте их нет:
Основываясь на предложении Михнеи, я попробовал следующее:
curl 'https://www.vermittlerregister.info/en/search?a=pdf®isternummer=D-W-111-BHC1-55' -H 'Cookie: session=s%3A9Q4kmQAo8-J7r9JgcxA_xBcpTGRW3ZmN.xBcVp19mrdbw%2FW0KZgSZNlj27BakNcA20m%2FjAIXRuic' > test.pdf
в результате сломанный test.pdf
и сообщение об ошибке:
завиток: (3) URL-адрес в неправильном/недопустимом формате или отсутствующий URL
«registernummer» не является внутренней или внешней командой, исполняемой программой или пакетным файлом.
Это сработало, когда я включил все файлы cookie:
Например. запрос:
curl "https://www.vermittlerregister.info/en/search?a=pdf®isternummer=D-CRQV-N63D6-52" ^
-H "accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ^
-H ^"cookie: klaro-cookie-consent=^%^7B^%^22econda^%^22^%^3Atrue^%^2C^%^22session^%^22^%^3Atrue^%^2C^%^22cookie-consent^%^22^%^3Atrue^%^7D; emos_jcsid=AY9S7EDyMyIwXqoqRContP58fgh73OXg:1:0:0; emos_jcvid=AY9S7EDyMyIwXqoqRContP58fgh73OXg:1:0:0:0:true:1; session=s^%^3A9Q4kmQAo8-J7r9JgcxA_xBcpTGRW3ZmN.xBcVp19mrdbw^%^2FW0KZgSZNlj27BakNcA20m^%^2FjAIXRuic^" ^
-H "user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0" > test2.pdf




Во-первых, похоже, у них есть какая-то защита от ботов при доступе к URL-адресу без параметра ?a=pdf:
Во-вторых, я думаю, что причина, по которой ваши запросы не работают, заключается в том, что вам нужно передать заголовок cookie сеанса вместе с запросом. Вот пример curl:
curl 'https://www.vermittlerregister.info/en/search?a=pdf®isternummer=D-W-111-BHC1-55' -H 'Cookie: session=<YOUR_SESSION_COOKIE>;' > test.pdf
Вы можете получить сеанс cookie, перейдя по URL-адресу в своем браузере:
это сработало, когда я включил все файлы cookie, см. Обновление 2.
Спасибо. Я пробовал, смотрите мое Обновление 1.