cURL을 사용하여 자동으로 파일을 다운로드하려고 합니다. 단, 로그인 후에만 파일을 다운로드할 수 있습니다. 로그인은 매우 표준적인 POST 요청입니다. 브라우저 네트워크 분석에서 살펴봤고 이제 구조가 어떻게 되는지 살펴보았습니다. 이제 cURL을 사용하여 로그인한 것으로 인식되고 파일을 다운로드할 수 있도록 하려면 어떻게 해야 합니까? 분명히 다운로드하기 전에 POST 요청을 보내는 것이 작동하지 않기 때문입니다.
답변1
쿠키를 저장해야 할 가능성이 높습니다. @jsotola의 답변은 다음에만 적용됩니다.기본 인증,이것은 점점 덜 일반적이 되고 있습니다. POST 요청이라고 하셨는데요.
보기 -b
및 -c
옵션. 먼저 위 옵션을 사용하여 로그인하고 쿠키를 저장하도록 컬 요청을 작성하세요. 그런 다음 호출을 반복하여 파일을 다운로드합니다. 예:
curl -b /tmp/cookies -c /tmp/cookies <url> ...
쿠키를 사용하는 목적은 인증 토큰을 저장하는 것입니다. 이를 사용하지 않으면 각 호출이 이전 요청과 독립적입니다. 물론 사이트에 Javascript/Ajax가 포함될 수 있으며 컬이 항상 작업을 완료하는 것은 아닙니다.
보너스: Firefox와 같은 브라우저를 사용하려는 경우 웹 개발자 도구가 Curl 요청을 생성할 수도 있습니다.
답변2
다음 중 하나를 시도해 보세요.
curl http://name:[email protected]/full/path/to/file
curl -u name:passwd http://machine.domain/full/path/to/file