wget이 재귀적으로 다운로드를 꺼리는 이유는 무엇입니까?

wget이 재귀적으로 다운로드를 꺼리는 이유는 무엇입니까?

주문하다

$ wget -r http://www.comp.brad.ac.uk/research/GIP/tutorials/index.html

같은 디렉토리에 다른 페이지에 대한 링크가 있더라도 저에게는 다운로드만 가능합니다 index.html. robots.txt예를 들어

<A HREF="viewp.html">Viewpoint specification</A>

wget이것을 무시합니까?

답변1

나는 이것을 테스트하고 문제를 발견했습니다.

wget은 명시적으로 지시하지 않는 한 robots.txt를 존중합니다.

wget -r http://www.comp.brad.ac.uk/research/GIP/tutorials/index.html
--2015-12-31 12:29:52--  http://www.comp.brad.ac.uk/research/GIP/tutorials/index.html
Resolving www.comp.brad.ac.uk (www.comp.brad.ac.uk)... 143.53.133.30
Connecting to www.comp.brad.ac.uk (www.comp.brad.ac.uk)|143.53.133.30|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 878 [text/html]
Saving to: ‘www.comp.brad.ac.uk/research/GIP/tutorials/index.html’

www.comp.brad.ac.uk/research/GI 100%[======================================================>]     878  --.-KB/s   in 0s     

2015-12-31 12:29:53 (31.9 MB/s) - ‘www.comp.brad.ac.uk/research/GIP/tutorials/index.html’ saved [878/878]

Loading robots.txt; please ignore errors.
--2015-12-31 12:29:53--  http://www.comp.brad.ac.uk/robots.txt
Reusing existing connection to www.comp.brad.ac.uk:80.
HTTP request sent, awaiting response... 200 OK
Length: 26 [text/plain]
Saving to: ‘www.comp.brad.ac.uk/robots.txt’

www.comp.brad.ac.uk/robots.txt  100%[======================================================>]      26  --.-KB/s   in 0s     

2015-12-31 12:29:53 (1.02 MB/s) - ‘www.comp.brad.ac.uk/robots.txt’ saved [26/26]

FINISHED --2015-12-31 12:29:53--

보시다시피 wget은 요청한 작업을 완벽하게 수행합니다.

이 경우 robots.txt는 무엇을 말합니까?

cat robots.txt
User-agent: *
Disallow: /

따라서 이 사이트는 로봇이 콘텐츠를 다운로드하는 것을 원하지 않습니다. 적어도 robots.txt를 읽고 팔로우하는 로봇은 그렇지 않습니다. 이는 일반적으로 로봇이 검색 엔진에서 색인화되는 것을 원하지 않는다는 의미입니다.

wget -r -erobots=off  http://www.comp.brad.ac.uk/research/GIP/tutorials/index.html

이제 wget이 너무 강력해서 배울 수 없다면 괜찮습니다. 하지만 결함이 wget에 있다고 생각하는 실수를 저지르지 마십시오.

그러나 웹사이트를 재귀적으로 다운로드하는 것은 위험하므로 때로는 전체 웹사이트를 크롤링하지 않도록 제한을 사용하는 것이 더 좋습니다.

wget -r -erobots=off -l2 -np  http://www.comp.brad.ac.uk/research/GIP/tutorials/index.html
  • -l2최대 2레벨까지 나타냅니다. -l의미: 수준.
  • -np즉, 트리 위로 이동하지 말고 시작 페이지에서 들어갑니다. -np의미: 부모가 없습니다.

이는 대상 페이지에 따라 다르며, 때로는 얻고 싶은 것과 얻지 않으려는 것을 정확히 지정하고 싶을 때도 있습니다. 예를 들어 이 경우 그래픽, PDF, 음악/비디오 확장자가 아닌 기본 .html/.htm 확장자만 얻을 수 있습니다. 이 -A옵션을 사용하면 크롤링할 확장 유형을 추가할 수 있습니다.

그런데 확인해 보니 내 wget 버전은 2015년 버전인 1.17입니다. 어떤 버전을 사용하고 있는지 확실하지 않습니다. 그런데, 제 생각엔 Python도 90년대에 만들어진 것 같은데, 여러분의 추론에 따르면 Python도 90년대 쓰레기입니다.

wget 매뉴얼 페이지처럼 매우 유익하고 기능이 풍부하다는 점을 인정합니다 wget --help. 따라서 누군가가 이를 읽고 싶어하지 않는 이유는 이해할 수 있지만, 가장 일반적인 wget 작업을 수행하는 방법을 알려주는 온라인 튜토리얼이 많이 있습니다.

답변2

위와 같은 답변이지만 불필요한 잘난척은 없습니다.

wget웹사이트의 robots.txt를 존중하세요. robots.txt가 이를 허용하지 않으면 재귀가 진행되지 않을 수 있습니다. 이 동작을 비활성화하려면 플래그를 추가하세요 -erobots=off.

관련 정보