wget에서 파일을 다운로드할 수 없습니다.

wget에서 파일을 다운로드할 수 없습니다.

지난 8시간 동안 별 진전 없이 다양한 글을 크롤링해왔습니다. 나는 httrack, wget, lynx 및 cURL을 사용해 보았습니다.

저는 사이트의 프리미엄 회원이고, 한번 결제하면 콘텐츠를 빠르게 다운로드할 수 있는 반면, 무료 회원은 콘텐츠를 천천히 다운로드할 수 있습니다. 모든 링크는 서버에 의해 생성되며 일회성 다운로드 링크이므로 링크 공유가 금지됩니다.

약 3시간 후에 나는 쿠키 파일을 저장하기 위해 wget을 얻는 방법을 알아냈습니다. 이제 내 문제는 파일을 다운로드하려고 할 때입니다. 다음 wget 명령은 모든 제품 페이지를 다운로드하지만 실제 파일은 다운로드하지 않습니다. 각 개별 페이지에는 다운로드 가능한 파일에 연결되는 태그가 있지만 <a>wget은 해당 태그를 크롤링하지 않습니다.

wget --mirror --adjust-extension --page-requisites --execute=robots=off --wait=30 --random-wait --convert-links --user-agent=Mozilla --no-parent --recursive --load-cookies=my-cookies.txt --no-clobber https://www.mysite.net/directory/product

나는 이것이 내가 놓치고 있는 단순한 무엇인가라는 느낌을 가지고 있습니다. 결국 8시간 넘게 작업하려고 노력했습니다. :/

편집하다:Anthon이 제안한 대로 Javascript를 끄려고 시도했지만 Javascript는 파일 다운로드에 아무런 역할을 하지 않는 것 같습니다. 웹사이트 코드를 자세히 살펴보면 간단한 URL 태그인 <a>.

답변1

나는 명령줄에서 사용할 수 있는 wget 및 cURL에 대한 명령줄을 생성하는 cliget(Firefox 추가 기능)을 사용합니다. 이것이 작동하는지 확인하십시오.

https://addons.mozilla.org/en-US/firefox/addon/cliget/

@Anthon이 지적했듯이 이것이 작동하지 않을 수 있는 한 가지 이유는 다운로드 링크가 실제로 실제 파일 위치를 계산하는 일부 자바 스크립트를 실행하고 있기 때문입니다. 해당 호출을 잡는 것이 해결책이 될 것입니다. 이러한 유형의 자동 다운로드에는 Selenium + Python을 사용할 수 있습니다. 하지만 접근 방식이 다소 복잡하고 아마도 이 사이트에 적합하지 않을 수 있습니다.

답변2

-Hwget 옵션 이나 긴 형식을 추가해 볼 수 있습니다.

--span-hosts

따라서 --recursivewget이 href에 지정된 두 번째 사이트에서 파일을 가져오도록 허용합니다 <a>. 당신은 또한 시도할 수 있습니다

--referer=originurl

여기서 Originurl은 모든 앵커를 포함한 페이지의 전체 URL입니다.

관련 정보