콘텐츠를 표시하기 전에 사용자의 연령을 확인해야 하는 웹사이트의 로컬 복사본이 필요합니다. 복잡한 양식은 없고 확인란과 "예, 저는 성인입니다"라고 적힌 버튼만 있으면 됩니다. 사용해 보았지만 wget
성공하지 못했으며 이 스플래시 화면만 다운로드하고 그 이상은 다운로드하지 않았습니다. Httrack도 실패했습니다.
쿠키 파일에 확인정보가 저장되어 있는 것으로 알고 있으며, 어떤 것인지 알아낸 것 같습니다. 그래서 다음을 사용하여 복사했습니다.cookie.txt 내보내기chromium 확장자를 .txt로 저장하고 wget
옵션을 사용하여 다시 시도했지만 --load-cookies
여전히 작동하지 않습니다.
이런 웹사이트를 어떻게 다운로드하나요? 내가 이것을 오용하고 있는 걸까요 wget
, 아니면 더 좋은 방법이 있는 걸까요?
편집하다:
좋아요, DownThemAll이 그 일을 하는 것 같습니다. 마지막으로 나는 wget
또한 성공했습니다.
wget -mpkrl 0 http://example.com
어쩌면 -rl 0
그것은 내가 이전에 놓쳤던 것일 수도 있습니다.
페이지 소스를 조사한 결과 새로고침/리디렉션이 관련되지 않고 하위 페이지가 올바르게 다운로드되었으며 확인 화면이 iframe
페이지 상단에 하나만 있으므로 간단한 스크립팅으로 제거할 수 있음을 발견했습니다.
(이 특별한 경우에는 궁극적으로 쿠키를 망칠 필요가 없으므로 답변으로 게시하지 않겠습니다.)
답변1
사이트 설정 방법에 따라 다르며 모든 사이트가 쿠키를 사용하는 것은 아닙니다. 일부는 php-sessions과 같은 것을 사용할 수 있지만 wget이 이를 직접 처리할 수 있는지는 모르겠습니다. 세션 ID(이 부분은 일반적으로 주소 표시줄에서 브라우저에 의해 숨겨지거나 로그인 시 한 번만 사용됨)를 찾은 경우 해당 ID(URL + 세션 ID)를 wget의 시작 URL로 사용할 수 있습니다.
쿠키 이야기로 돌아가서... 하지만 나도 비슷한 일을 해야 하므로 몇 가지 팁...
일부 웹사이트에서는 임시 쿠키를 사용합니다. 이번 세션의 마지막입니다. 이들은 일반적으로아니요cookie.txt/cookies-database에 저장되므로 모든 쿠키 내보내기 프로그램이 쿠키를 내보내는 것은 아닙니다. 파일/데이터베이스에서 내보내는 경우에는 그렇지 않습니다. 브라우저에서 내보내는 경우에는 "메모리"(사이트에서)), 좋습니다. Personally, I've found the "cookie.txt export" extension for the Chrome-browser the best, as it saves *all* cookies (including temps) from just the active tab.
(글쎄, 실제로는 쿠키를 텍스트로 표시하므로 태그를 지정하고 복사한 후 직접 파일에 저장해야 합니다.) 로그인하려면 일반적으로 쿠키 파일에 저장되지 않는 임시 쿠키를 저장하는 "기억하기"를 선택하세요. 데이터베이스 쉽게 내보낼 수 있도록 영구 쿠키로 변환합니다(그러나 연령 확인에는 도움이 되지 않을 수 있음).
cookie.txt 파일을 저장한 후 일부 편집을 수행하는 것이 좋습니다. 만료 시간을 늘리거나 임시 쿠키를 영구 쿠키로 편집할 수도 있습니다(단순한 "스위치"로 생각). 관련 없는 쿠키(예: 광고 등)를 삭제할 수도 있습니다.
wget이 작동하는 동안 브라우저 창을 열어두면(아마도 페이지를 새로 고치거나 가끔 찾아볼 수도 있음) wget이 완료되기 전에 세션이 만료되지 않도록 할 수 있습니다.
브라우저 확장도 있습니다... 저는 Firefox의 "Down-them-all"을 좋아합니다. 이 기능을 사용하면 콘텐츠를 다운로드할 수 있습니다(비록 wget보다 더 대화식이지만). 현재 페이지에 대한 링크 목록이 표시됩니다. 저장하려는 링크 및/또는 이미지를 확인하고 선택적으로 링크를 따라갈 깊이를 확인하세요. 시작하기 전에 로그인하거나 나이를 확인하면 Down-them-all이 브라우저에 로그인하고 체크인하며 수동으로 다운로드할 수 있는 모든 것을 다운로드할 수 있습니다. 이름 바꾸기 모드와 번호 매기기를 사용해 보십시오. 모든 페이지를 균일하게 저장하게 될 것입니다. 그렇지 않으면 이름 충돌이 발생할 수 있습니다(덮어쓰기 전에 물어보겠지만).
행운을 빌어요!