블로그를 미러링할 때 wget을 성공적으로 재귀할 수 없습니다.

블로그를 미러링할 때 wget을 성공적으로 재귀할 수 없습니다.

이 블로그에 대한 오프라인 미러를 만들고 싶습니다.http://blogs.gamefilia.com/lord-areg

나는 다음을 사용하고 있습니다 :

wget --recursive --level=0 --span-hosts --no-clobber --page-requisites --html-extension --convert-links --no-parent -e robots=off --wait=4 --random-wait --adjust-extension --no-check-certificate --user-agent=Mozilla http://blogs.gamefilia.com/lord-areg/‍

하지만 나는 하위 디렉토리만 얻을 수 있고 index.html, 하위 디렉토리를 얻을 수 없으며...모두 필요합니다.

예를 들어:

lord-areg/15-01-2012/47781/boveda-de-articulos-de-silent-hill

lord-areg/01-02-2012/48151/eddie-dombrowski-la-pistola-y-la-pizza-misteriosa

등.

답변1

실행하면 -d무슨 일이 일어나고 있는지 보여줍니다.

Location: http://blogs.gamefilia.com/lord-areg [following]
    ....
Deciding whether to enqueue "http://blogs.gamefilia.com/lord-areg".
Going to "" would escape "lord-areg" with no_parent on.
Decided NOT to load it.
Redirection "http://blogs.gamefilia.com/lord-areg" failed the test.

리디렉션된 페이지가 지정된 영역 외부에 있으므로 페이지를 검색하더라도 반복 시 해당 내용을 따르지 않습니다.

마지막 것을 제거한다는 것은 /리디렉션이 없음을 의미하지만, 발견한 바와 같이 wget이 이를 lord-areg디렉토리로 취급하지 않고 이전 디렉토리를 사용하므로 /전체 사이트가 일치함을 의미합니다.

HTTP(및 HTTPS)의 경우 "--no-parent"에 대해 후행 슬래시가 매우 중요합니다. HTTP에는 "디렉터리"라는 개념이 없습니다. Wget은 사용자가 무엇이 디렉터리이고 무엇이 아닌지를 나타냅니다. 존재하다'http://foo/bar/', Wget은 'bar'가 디렉토리라고 생각하고 'http://foo/bar'(후행 슬래시 없음), 'bar'는 파일 이름으로 처리됩니다(따라서 '--no-parent'는 상위가 '/'이므로 의미가 없습니다).

(4.3 디렉터리 기반 제한)

따라서 다른 방법으로 결과를 제한해야 합니다. -I lord-areg거의 작동하지만 양식의 페이지를 건너뜁니다 /lord-areg?page=1. 이를 일치시키려면 필수 URL을 더 자세히 설명해 주세요.

--accept-regex '^http:\/\/blogs\.gamefilia\.com\/lord-areg[?/]'

관련 정보