wget / curl을 사용하여 로그인 한 사이트에서 다운로드하려면 어떻게합니까? 가져 와서

wikipedia의 일부 부분은 로그인 할 때 다르게 나타납니다. 사용자 페이지를 가져 와서 마치 마치 마치 로그인 한 것처럼 보입니다.

이런 사용자 페이지를 얻을 수있는 방법이 있습니까

http://en.wikipedia.org/wiki/User:A

이것은 로그인 페이지입니다.

http://en.wikipedia.org/w/index.php?title=Special:UserLogin&returnto=Login&campaign=ACP3


답변

쉬운 방법 : 브라우저로 로그인하여 쿠키를 wget하십시오

가장 쉬운 방법 : 일반적으로 로그인 한 것처럼 페이지를 가져 오려면 특정 웹 사이트에서 (로그인 된) 쿠키를 wget 또는 curl 로 제공해야합니다 .

Firefox를 사용하는 경우 Export Cookies 애드온을 통해 쉽게 수행 할 수 있습니다. 애드온을 설치하고 다음을 수행하십시오.

  1. 도구 … 쿠키 내보내기로 이동 하여 cookies.txt파일을 저장하십시오 ( 파일 이름 / 대상을 변경할 수 있음).
  2. 터미널을 열고 옵션 wget과 함께 사용 하십시오 --load-cookies=FILENAME. 예 :

    wget --load-cookies=cookies.txt http://en.wikipedia.org/wiki/User:A
    • 들어 , 그건curl --cookie cookies.txt ...

(Chrome / Chromium 사용자를 위해이 답변을 업데이트하려고합니다)

어려운 방법 : curl (바람직하게는)을 사용하거나 전체 세션을 관리하기 위해 wget 을 사용하십시오.

  • 자세한 사용 방법이 답변의 범위를 넘어,하지만 당신은 사용 컬을 으로 --cookie-jar또는 wget을--save-cookies --keep-session-cookies그들을 사용 후 로그인 쿠키 저장, 사이트에 로그인하기 위해 HTTP / S PUT 방식과 함께, 옵션, 브라우저를 시뮬레이션하십시오.
  • 말할 필요도없이, 이것은 로그인 페이지를위한 HTML 소스를 거쳐야하고 (입력 필드 이름 등을 얻는 등), 간단한 로그인 / 암호 인증 이외의 것을 사용하여 사이트에서 작업하기가 어려운 경우가 많습니다.
  • 팁 : 이 경로를 사용하는 경우 최소한 인증 단계에서 웹 사이트 의 모바일 버전 (사용 가능한 경우) 을 처리하는 것이 훨씬 더 간단합니다 .

답변

추가 사항을 설치하지 않고 나를 위해 일한 또 다른 쉬운 솔루션 :

이를 통해 쉘에 직접 붙여 넣을 수있는 명령을 제공합니다.

curl 'https://mysite.test/my-secure-dir/picture1.jpg' \
-H 'User-Agent: Mozilla/5.0 ...' \
-H 'Cookie: SESSIONID=abcdef1234567890'

그런 다음 명령에서 URL을 수정하여 원하는 것을 가져올 수 있습니다.


답변

cURL을 사용하면 두 가지 방법으로 쿠키를 처리하기가 정말 쉽습니다.

curl www.target-url.com -c cookie.txt그런 다음 cookie.txt라는 파일을 저장합니다. 그러나 로그인해야하므로 다음과 같은 인수와 함께 –data를 사용해야 curl -X --data "var1=1&var2=2" www.target-url.com/login.php -c cookie.txt합니다. loggued 쿠키를 받으면 다음과 같이 보낼 수 있습니다.
curl www.target-url.com/?user-page.php -b cookie.txt

저장하고 보내려면 -c (-cookie) 또는 -b (-cookie-jar)를 사용하십시오.

참고 1 : cURL CLI를 사용하는 것은 PHP보다 훨씬 쉽고 빠릅니다.)

최종 내용을 저장하려면 > filename.htmlcURL 명령에 쉽게 추가 한 다음 전체 HTML 코드를 저장할 수 있습니다 .

“full”에 대한 참고 2 : cURL을 사용하여 자바 스크립트를 렌더링 할 수 없으며 소스 코드 만 가져 오십시오.


답변

이 질문에 여전히 관심이있는 사람들에게는 CurlWGet 이라는 매우 유용한 Chrome 확장 프로그램 이 있습니다.이 확장 프로그램은 한 번의 클릭으로 인증 수단 등으로 wget/ curl요청 을 생성 할 수 있습니다 . 이 확장을 설치하려면 아래 단계를 수행하십시오.

  1. Chrome 웹 스토어 에서 확장 프로그램을 설치하십시오 .
  2. 다운로드하려는 웹 페이지로 이동하십시오.
  3. 다운로드를 시작하십시오.
  4. 확장 프로그램이 링크를 생성합니다.

즐겨!


답변

Firefox 쿠키가있는 Wget 블로그 는 Firefox가 쿠키를 저장하는 sqlite 데이터 파일에 액세스하는 방법을 보여줍니다. 그렇게하면 wget과 함께 사용하기 위해 쿠키를 수동으로 내보낼 필요가 없습니다. 의견에 따르면 세션 쿠키에서는 작동하지 않지만 시도한 사이트에서는 제대로 작동합니다.


답변

Firefox의 cliget 을 살펴보십시오 .

다운로드하려고하면 최종 다운로드 대화 상자에서 다운로드를 curl 명령 줄로 클립 보드에 복사하는 옵션이 제공됩니다.


답변

이것을 시도 했습니까?

wget --user=username --password=password http://en.wikipedia.org/wiki/User:A