wget이 상대 링크를 올바르게 확인할 수 없습니까?

wget이 상대 링크를 올바르게 확인할 수 없습니까?

기본으로 돌아가세요. 링크가 일반적으로 상대적인 정적 웹사이트가 있습니다.

브라우저와 Google 크롤러에서는 모든 것이 잘 작동하지만 wget --spider상대 링크는 사이트 루트에 대해 확인됩니다.

즉, 페이지에서 /foo/bar.html링크가 대신 로 <a href="test.html">확인됩니다 ./test.html/foo/test.html

내 질문은 다음과 같습니다HTML 링크 작동 방식에 대한 기본 사항을 잊거나 무시하고 있습니까? 아니면 wget --spiderURI를 잘못 구문 분석하고 있습니까?

HTML 사양에는 요소가 없으면 base현재 문서가 기초로 사용된다고 명시되어 있습니다.

가지다이 wget 문제하지만 내 버전에서는 수정되어야 합니다.

$ wget --version
GNU Wget 1.19.4 built on linux-gnu.

-cares +digest -gpgme +https +ipv6 +iri +large-file -metalink +nls 
+ntlm +opie +psl +ssl/openssl

내 명령은 다음과 같습니다

wget --spider --convert-links -r -p --level 1 -E --user-agent=crawlerTest http://www.zizka.ch/

답변1

나는 일반적으로 다음을 사용하여 웹사이트를 크롤링할 때 이 스위치를 사용합니다 wget.

$ wget -r -l4 –spider -D unix.stackexchange.com https://unix.stackexchange.com/

이는 wget재귀( -r) 스파이더( -spider)가 최대 4단계 깊이( -l4)에 도달할 수 있음을 알려줍니다. 이 스위치는 이 도메인에 속한 링크만 따라간다는 -D것을 나타냅니다 .wget

실행하면 다음과 같습니다.

$ timeout 1 wget -r -l4 –spider -D unix.stackexchange.com https://unix.stackexchange.com/
--2018-07-31 20:28:40--  http://xn--spider-vg0c/
Resolving xn--spider-vg0c (xn--spider-vg0c)... failed: nodename nor servname provided, or not known.
wget: unable to resolve host address ‘xn--spider-vg0c’
--2018-07-31 20:28:40--  https://unix.stackexchange.com/
Resolving unix.stackexchange.com (unix.stackexchange.com)... 151.101.65.69, 151.101.193.69, 151.101.129.69, ...
Connecting to unix.stackexchange.com (unix.stackexchange.com)|151.101.65.69|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 106032 (104K) [text/html]
Saving to: ‘unix.stackexchange.com/index.html’

unix.stackexchange.com/index.html               100%[====================================================================================================>] 103.55K  --.-KB/s    in 0.1s

2018-07-31 20:28:40 (1.02 MB/s) - ‘unix.stackexchange.com/index.html’ saved [106032/106032]

Loading robots.txt; please ignore errors.
--2018-07-31 20:28:40--  https://unix.stackexchange.com/robots.txt
Reusing existing connection to unix.stackexchange.com:443.
HTTP request sent, awaiting response... 200 OK
Length: 2148 (2.1K) [text/plain]
Saving to: ‘unix.stackexchange.com/robots.txt’

unix.stackexchange.com/robots.txt               100%[====================================================================================================>]   2.10K  --.-KB/s    in 0s

2018-07-31 20:28:40 (228 MB/s) - ‘unix.stackexchange.com/robots.txt’ saved [2148/2148]

관련 정보