사이트를 스파이더로 만들기위한 Bash 스크립트, 링크를 따르고 URL (내장 필터링 포함)을 생성 된 텍스트 파일로 가져옵니다.
스크립트를 다운로드하고 컴퓨터의 원하는 위치로 저장하십시오.
컴퓨터에 wget 설치해야합니다.
이미 설치되어 있는지 확인하려면 명령을 자체적으로 wget 해보십시오.
Mac에 있거나 Linux를 실행중인 경우 이미 WGET를 설치했을 가능성이 있습니다. 그러나 wget 명령이 작동하지 않으면 경로 변수에 올바르게 추가되지 않을 수 있습니다.
Windows를 실행중인 경우 :
https://eternallybored.org/misc/wget/에서 Windows의 최신 wget 바이너리를 다운로드하십시오.
다운로드는 문서가 포함 된 zip 또는 exe로 제공됩니다. 나는 단지 exe를 추천합니다.
zip을 다운로드 한 경우 모두를 추출하십시오 (Zip 유틸리티에 내장 된 Windows가 오류가 발생하는 경우 7-zip을 사용하십시오). 또한 64 비트 버전을 다운로드 한 경우 wget64.exe 파일 이름을 wget.exe 로 바꾸십시오.
wget.exe C:WindowsSystem32 로 이동하십시오.
컴퓨터의 grep 버전이 -E, --extended-regexp 지원하십시오. 지원을 확인하려면 grep --help 실행하고 깃발을 찾으십시오. 설치된 버전을 확인하려면 grep -V 실행하십시오.
git bash, 터미널 등을 열고 fetchurls.sh 스크립트에 대한 권한을 설정하십시오.
chmod +x /path/to/script/fetchurls.sh스크립트를 실행하려면 다음을 입력하십시오.
./fetchurls.sh [OPTIONS]...또는 다음 중 하나를 사용하여 실행할 수 있습니다.
sh ./fetchurls.sh [OPTIONS]...
# -- OR -- #
bash ./fetchurls.sh [OPTIONS]...옵션을 전달하지 않으면 스크립트가 대화식 모드로 실행됩니다.
도메인 URL에 인증이 필요한 경우 사용자 이름과 비밀번호를 플래그로 전달해야합니다. 대화식 모드에서 이러한 값을 제출하지 않습니다.
옵션 (플래그)을 스크립트로 직접 전달하거나 대화식 모드로 스크립트를 실행할 수 없습니다.
-d , --domainhttps://example.com완전히 자격을 갖춘 도메인 URL (프로토콜 포함).
URL의 올바른 프로토콜 (예 : https ) 및 하위 도메인을 입력하거나 생성 된 파일이 비어 있거나 불완전 할 수 있는지 확인하십시오. 스크립트는 발견되면 첫 번째 HTTP 리디렉션을 자동으로 따라야합니다. 예를 들어, https://www.adamdehaven.com 에 대한 잘못된 프로토콜 ( http://... )을 입력하면 스크립트가 자동으로 리디렉션을 따르고 올바른 https 프로토콜에 대한 모든 URL을 가져옵니다.
대상 URL (또는 첫 번째 리디렉션)이 HTTP 200 OK 의 상태를 반환하는 한 도메인의 URL은 성공적으로 거미됩니다.
-l , --location~/Desktop/c/Users/username/Desktop생성 된 결과를 저장하려는 위치 (디렉토리).
디렉토리가 지정된 위치에 존재하지 않으면 나머지 경로가 유효 한 한 새 디렉토리가 자동으로 생성됩니다.
-f , --filenamedomain-topleveldomainexample-com공백이나 파일 확장자가없는 생성 된 파일의 원하는 이름입니다.
-e , --exclude"css|js|map"결과에서 제외 할 파이프 확장 목록.
파일 확장의 기본 목록과 일치하는 파일 제외를 방지하려면 빈 문자열을 전달하기 만하면됩니다. ""
-s , --sleep02검색 사이에 기다리는 몇 초.
-u , --usernamemarty_mcfly도메인 URL에 인증이 필요한 경우 사용자 이름이 wget 명령으로 전달됩니다.
사용자 이름에 공간 문자가 포함 된 경우 인용문 내부를 전달해야합니다. 이 값은 깃발로만 설정 될 수 있습니다. 대화식 모드에는 프롬프트가 없습니다.
-p , --passwordthats_heavy도메인 URL에 인증이 필요한 경우 비밀번호는 wget 명령으로 전달됩니다.
암호에 공간 문자가 포함 된 경우 인용문 내부를 전달해야합니다. 이 값은 깃발로만 설정 될 수 있습니다. 대화식 모드에는 프롬프트가 없습니다.
-n , --non-interactive스크립트가 비 결과 쉘에서 성공적으로 실행할 수 있습니다.
스크립트는 해당 플래그가 설명되지 않는 한 기본값 --location 및 --filename 설정을 사용합니다.
-i , --ignore-robots도메인의 Robots.txt를 무시하십시오.
-w , --wgetWGET 설치 지침을 표시하십시오. 설치 지침은 컴퓨터 구성에 따라 다를 수 있습니다.
-v , -V , --version버전 정보 표시.
-t , --troubleshooting출력은 문제 해결을 위해 런타임시 관련 값이있는 옵션 플래그를 받았습니다.
-h , -? , --help도움말 콘텐츠를 보여줍니다.
-도메인 플래그를 전달하지 않으면 스크립트는 대화식 모드로 실행되며 UNSET 옵션이 표시됩니다.
먼저 크롤링하려는 사이트의 전체 URL (HTTPS/HTTP 프로토콜 포함)을 입력하라는 메시지가 표시됩니다.
Fetch a list of unique URLs for a domain.
Enter the full domain URL ( http://example.com )
Domain URL:그런 다음 생성 된 결과를 저장하려는 위치의 위치 (디렉토리)를 입력하라는 메시지가 표시됩니다 (Windows의 데스크탑으로 기본값) :
Save file to directory
Directory: /c/Users/username/Desktop다음으로 생성 된 파일의 이름을 변경/수락하라는 메시지가 표시됩니다 (기본 파일 이름을 수락하려면 Enter를 누르십시오).
Save file as
Filename (no file extension, and no spaces): example-com마지막으로, 제외 된 파일 확장의 기본 목록을 변경/수락하라는 메시지가 표시됩니다 (기본 목록을 수락하려면 Enter를 누르십시오).
Exclude files with matching extensions
Excluded extensions: bmp | css | doc | docx | gif | jpeg | jpg | JPG | js | map | pdf | PDF | png | ppt | pptx | svg | ts | txt | xls | xlsx | xml스크립트는 사이트를 크롤링하고 유효한 URL 목록을 새 텍스트 파일로 컴파일합니다. 완료되면 스크립트에는 메시지와 생성 된 파일의 위치가 표시됩니다.
Fetching URLs for example.com
Finished with 1 result !
File Location:
/c/Users/username/Desktop/example-com.txt동일한 이름의 파일이 이미 위치에 존재하는 경우 (예 : 이전에 동일한 URL에 대한 스크립트를 실행 한 경우) 원본 파일을 덮어 씁니다 .
기본적으로 스크립트는 일반적으로 필요없는 많은 파일 확장을 필터링합니다.
파일 확장 목록은 --exclude 플래그를 통해 전달하거나 대화식 모드를 통해 제공 될 수 있습니다.
.bmp.css.doc.docx.gif.jpeg.jpg.JPG.js.map.pdf.PDF.png.ppt.pptx.svg.ts.txt.xls.xlsx.xml또한 특정 사이트 (WordPress 포함) 파일 및 디렉토리도 무시됩니다.
/wp-content/uploads//feed//category//tag//page//widgets.php//wp-json/xmlrpc 스크립트는 가장 원치 않는 파일 유형과 디렉토리를 필터링해야합니다. 그러나 fetchurls.sh 파일 내에서 fetchUrlsForDomain() 함수를 편집하여 특정 페이지, 디렉토리 및 파일 유형을 필터링하는 일반 표현식을 편집 할 수 있습니다.
경고 : GREP 또는 정규 표현식에 익숙하지 않은 경우 스크립트를 쉽게 깨뜨릴 수 있습니다.