Unix LinkChecker를 사용하여 모든 사이트를 철저히 검사하는 방법

5659 단어 backendcanonicaldev
robinwinslow.uk/linkchecker에 원래 게시됨

404 또는 500 오류를 찾기 위해 사이트를 크롤링하는 도구를 원하는 경우 온라인 도구(예: The W3C's online link checker ), FirefoxChrome 용 브라우저 플러그인 또는 Xenu's Link Sleuth 과 같은 Windows 프로그램이 있습니다.

유닉스 링크 검사기



오늘 발견한 linkchecker - 유닉스 명령줄 프로그램으로 사용 가능(GUI 또는 웹 인터페이스도 있음).

명령줄 도구 설치



Ubuntu에 간단하게 명령줄 도구를 설치할 수 있습니다.

sudo apt-get install linkchecker


링크체커 사용



좋은 명령줄 프로그램과 마찬가지로 manual page 이 있지만 읽기가 다소 어려울 수 있으므로 아래에 몇 가지 단축키를 제공합니다.

기본적으로 linkchecker는 많은 경고를 제공합니다. 301, 모든 404, 시간 초과 등을 초래하는 모든 링크에 대해 경고하고 매초마다 상태 업데이트를 제공합니다.

로봇.txt



linkchecker는 robots.txt 파일에서 허용하지 않는 웹사이트를 크롤링하지 않으며 이를 재정의할 방법이 없습니다. The solution은 다음을 통해 linkchecker를 허용하도록 robots.txt 파일을 변경하는 것입니다.

User-Agent: *
Disallow: /
User-Agent: LinkChecker
Allow: /


출력 리디렉션


linkchecker는 출력을 파일로 리디렉션할 것으로 예상하는 것 같습니다. 그렇게 하면 실제 경고 및 오류만 파일에 저장되고 명령줄에 상태가 보고됩니다.

$ linkchecker http://example.com > siteerrors.log
35 URLs active,     0 URLs queued, 13873 URLs checked, runtime 1 hour, 51 minutes


타임아웃



개발 사이트를 테스트하는 경우 응답 속도가 상당히 느리고linkchecker 많은 시간 초과가 발생할 수 있으므로 해당 시간 초과 시간을 늘리는 것이 좋습니다.

$ linkchecker --timeout=300 http://example.com > siteerrors.log


경고 무시



나는 당신에 대해 모르지만 내가 일하는 사이트에는 많은 오류가 있습니다. 리디렉션 경고에 대해 걱정하기 전에 404s 및 50*s를 찾고 싶습니다.

$ linkchecker --timeout=300 --no-warnings http://example.com > siteerrors.log


출력 유형



기본text 출력은 상당히 장황합니다. 쉽게 읽을 수 있도록 로깅을 CSV 형식으로 원할 것입니다.

$ linkchecker --timeout=300 --no-warnings -ocsv http://example.com > siteerrors.csv


다른 옵션



기본 404 및 50* 오류를 모두 찾아 수정한 경우 경고를 다시 켜고(--no-warnings 제거) --check-html--check-css 사용을 시작할 수 있습니다.

OpenID로 웹사이트 확인하기(2014-04-17 업데이트)



오늘은 Canonical's OpenID system 으로 인증이 필요한 사이트를 확인하기 위해 linkchecker 를 사용해야 했습니다. 이를 위해 a StackOverflow answer이 저를 크게 도왔습니다.

처음에는 Chromium 으로 정상적으로 사이트에 액세스하고 the console window 을(를) 열고 해당 사이트에 설정된 모든 쿠키를 버렸습니다.

> document.cookie
"__utmc="111111111"; pysid=1e53e0a04bf8e953c9156ea841e41157;"


그런 다음 이 쿠키를 linkchecker가 이해할 수 있는 형식으로 cookies.txt에 저장했습니다.

Host:example.com
Set-cookie: __utmc="111111111"
Set-cookie: pysid="1e53e0a04bf8e953c9156ea841e41157"

linkchecker와 함께 내 --cookiefile 명령에 포함했습니다.

linkchecker --cookiefile=cookies.txt --timeout=300 --no-warnings -ocsv http://example.com > siteerrors.csv


그걸 써!



상당한 규모의 웹 사이트에서 작업하는 경우 거의 수십 개의 끊어진 링크 및 기타 오류가 있습니다. 링크 체커는 웹사이트를 크롤링하여 각 링크의 오류를 확인합니다.

웹사이트 링크 확인이 당연해 보일 수 있지만 제 경험상 정기적으로 수행하는 개발팀은 거의 없습니다.

자동화된 링크 확인을 위해 linkchecker를 사용하는 것이 좋습니다! 아직 구현하지는 않았지만 구현하면 알려 드리겠습니다.

좋은 웹페이지 즐겨찾기