www.website.com/XYZ에서 링크를 크롤링하고 www.website.com/ABC 아래에있는 링크 만 다운로드하고 싶습니다.
다음 wget 명령을 사용하여 원하는 파일을 가져옵니다.
wget -I ABC -r -e robots=off --wait 0.25 http://www.website.com/XYZ
wget 1.13.4를 사용할 때 완벽하게 작동합니다. 그러나 문제는 wget 1.11이있는 서버 에서이 명령을 사용해야하며 동일한 명령을 사용하면 다음과 같은 추가 도메인을 다운로드하게됩니다.
www.website.de
www.website.it
...
이 문제를 어떻게 피할 수 있습니까? 나는 사용하려고
--exclude domains=www.website.de,www.website.it
그러나 도메인을 계속 다운로드했습니다.
또한 --no-parent
원하는 파일이 상위 레벨이기 때문에 사용할 수 없습니다 (website.com/XYZ에서 링크를 크롤링하여 website.com/ABC에 파일을 원합니다).
힌트가 있습니까?
"가짜"URL을 사용하지 말고 문제와 관련이없는 사이트의 URL을 사용하지 마십시오. 귀하가 나열한 도메인은 "하위 도메인"이 아니며, 동일한 회사에 속하는 다른 도메인 일뿐입니다.
—
guntbert
여기에 문제가 있습니다.
—
jw013
wget
기본적으로 호스트를 교차하지 않아야 하며 재귀 wget을 수행 할 때 호스트를 교차 하려면 -H
/ --span-hosts
옵션 이 필요합니다 . "www.website.com"는 "www.website.de"와 완전히 다른 호스트입니다.
@guntbert 죄송합니다. 실제 URL을 제공하는 것이 문제가 될 것이라고 생각했습니다. 물론 크롤링하려는 웹 사이트는 website.com이 아닙니다. 그러나 example.com을 크롤링하면 기본 디렉토리 (example.com과 동일한 수준)에 example.it, example.de도 표시됩니다.
—
user2779485
@ jw013 위에서 말한 것처럼 www.example.com/x를 제공하면 www.example.de, www.example.it도 크롤링합니다. 그러나 이것은 1.13이 아닌 wget 1.11에서만 발생합니다. 그래서 나는 매우 혼란 스럽습니다.
—
user2779485
이것은 버그처럼 보입니다 : wget 1.11은 다르게 동작해서는 안되며
—
Gilles 'SO- 악마 그만해
-H
항상 원래 호스트 외부에서 재귀해야했습니다. 합니까의 -D www.website.com
도움?