#ubuntu #curl #debian
#ubuntu #curl #debian
Вопрос:
Я загружаю большие пакеты PDF-файлов из парламентов. Я очистил адреса pdf и теперь пытаюсь их загрузить.
Для этого я настроил экземпляр debian в университетском облаке.
Для большинства из них это работало нормально, но для 4 парламентов я загрузил страницу с ошибкой о необходимости принимать файлы cookie. Результатом является html-страница с окончанием файла pdf, которая содержит в основном вопрос, принимаю ли я файлы cookie.
Эта ошибка не возникает ни в Ubuntu, ни в Windows 10.
Вот результат curl в debian:
curl -Iv4 http://dokumentation.landtag-mv.de/parldok/dokument/44970/eu_ratspraesidentschaft.pdf
* Trying 52.57.90.21...
* TCP_NODELAY set
* Expire in 200 ms for 4 (transfer 0x558926ee0f90)
* Connected to dokumentation.landtag-mv.de (52.57.90.21) port 80 (#0)
> HEAD /parldok/dokument/44970/eu_ratspraesidentschaft.pdf HTTP/1.1
> Host: dokumentation.landtag-mv.de
> User-Agent: curl/7.64.0
> Accept: */*
>
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
< Cache-Control: private, no-cache
Cache-Control: private, no-cache
< Content-Length: 14447
Content-Length: 14447
< Content-Type: text/html; charset=utf-8
Content-Type: text/html; charset=utf-8
< X-Content-Type-Options: nosniff
X-Content-Type-Options: nosniff
< X-Frame-Options: sameorigin
X-Frame-Options: sameorigin
< X-Powered-By: ASP.NET
X-Powered-By: ASP.NET
< Date: Thu, 14 Jan 2021 16:17:41 GMT
Date: Thu, 14 Jan 2021 16:17:41 GMT
по сравнению с Ubuntu, где я получаю pdf
$ curl -Iv4 http://dokumentation.landtag-mv.de/parldok/dokument/44970/eu_ratspraesidentschaft.pdf
* Trying 52.57.90.21:80...
* TCP_NODELAY set
* Connected to dokumentation.landtag-mv.de (52.57.90.21) port 80 (#0)
> HEAD /parldok/dokument/44970/eu_ratspraesidentschaft.pdf HTTP/1.1
> Host: dokumentation.landtag-mv.de
> User-Agent: curl/7.68.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
< Cache-Control: private, no-cache
Cache-Control: private, no-cache
< Content-Length: 120419
Content-Length: 120419
< Content-Type: application/pdf
Content-Type: application/pdf
< X-Content-Type-Options: nosniff
X-Content-Type-Options: nosniff
< X-Frame-Options: sameorigin
X-Frame-Options: sameorigin
< X-Powered-By: ASP.NET
X-Powered-By: ASP.NET
< Date: Thu, 14 Jan 2021 16:01:14 GMT
Date: Thu, 14 Jan 2021 16:01:14 GMT
Я был бы очень рад, если бы кто-нибудь мог сказать мне, что я сделал не так
Комментарии:
1. Что вы пытались отладить проблему? Как это связано с программированием?
2. Оригинальный сценарий был написан на R, но никто не ответил на запрос, поэтому я попытался сделать его более общим. Это трудно решить, если источник ошибки неясен. Изначально я работал, основываясь на теории, что Debian не имеет надлежащих файлов cookie и не может их принимать, поскольку всплывающее окно — это javascript, который не взаимодействует с curl. Однако использование cookiefile не помогло, и, очевидно, что файлы cookie не отправляются даже на компьютере Ubuntu. Я надеялся, что здесь есть кто-то, кто знает проблему и даст мне отправную точку.
Ответ №1:
Использовать --output
опцию:
curl --output eu_ratspraesidentschaft.pdf http://dokumentation.landtag-mv.de/parldok/dokument/44970/eu_ratspraesidentschaft.pdf