สคริปต์ทุบตีเพื่อแมงมุมไซต์ติดตามลิงก์และดึง URL (พร้อมการกรองในตัว) ลงในไฟล์ข้อความที่สร้างขึ้น
ดาวน์โหลดสคริปต์และบันทึกไปยังตำแหน่งที่ต้องการบนเครื่องของคุณ
คุณจะต้องติดตั้ง wget บนเครื่องของคุณ
หากต้องการตรวจสอบว่ามีการติดตั้งแล้วลองรันคำ wget ด้วยตัวเอง
หากคุณอยู่ใน Mac หรือใช้งาน Linux โอกาสที่คุณจะติดตั้ง WGET อยู่แล้ว อย่างไรก็ตามหากคำสั่ง wget ไม่ทำงานอาจไม่ถูกเพิ่มเข้ากับตัวแปรเส้นทางของคุณอย่างเหมาะสม
หากคุณใช้ Windows:
ดาวน์โหลดไบนารี wget ล่าสุดสำหรับ windows จาก https://eternallybored.org/misc/wget/
การดาวน์โหลดมีให้บริการเป็นซิปพร้อมเอกสารหรือเพียงแค่ EXE ฉันขอแนะนำแค่ exe
หากคุณดาวน์โหลด ZIP ให้แยกทั้งหมด (หาก Windows Built in Zip Utility ให้ข้อผิดพลาดให้ใช้ 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.comURL โดเมนที่มีคุณสมบัติครบถ้วน (พร้อมโปรโตคอล) ที่คุณต้องการรวบรวมข้อมูล
ตรวจสอบให้แน่ใจว่าคุณป้อนโปรโตคอลที่ถูกต้อง (เช่น https ) และโดเมนย่อยสำหรับ URL หรือไฟล์ที่สร้างขึ้นอาจว่างเปล่าหรือไม่สมบูรณ์ สคริปต์จะพยายามติดตามการเปลี่ยนเส้นทาง HTTP ครั้งแรกโดยอัตโนมัติหากพบ ตัวอย่างเช่นหากคุณป้อนโปรโตคอลที่ไม่ถูกต้อง ( http://... ) สำหรับ https://www.adamdehaven.com สคริปต์จะติดตามการเปลี่ยนเส้นทางและดึง URL ทั้งหมดสำหรับโปรโตคอล HTTPS ที่ถูกต้องโดยอัตโนมัติ
URL ของโดเมนจะประสบความสำเร็จในการกำจัดแมงมุมตราบใดที่ URL เป้าหมาย (หรือการเปลี่ยนเส้นทางครั้งแรก) ส่งคืนสถานะของ HTTP 200 OK
-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 , --wgetแสดงคำแนะนำในการติดตั้ง wget คำแนะนำการติดตั้งอาจแตกต่างกันไปขึ้นอยู่กับการกำหนดค่าคอมพิวเตอร์ของคุณ
-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 flag หรือให้ผ่านโหมดการโต้ตอบ
.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 สคริปต์ควรกรองประเภทไฟล์และไดเรกทอรีที่ไม่ต้องการมากที่สุด อย่างไรก็ตามคุณสามารถแก้ไขนิพจน์ทั่วไปที่กรองหน้าบางหน้าไดเรกทอรีและประเภทไฟล์โดยการแก้ไขฟังก์ชัน fetchUrlsForDomain() ภายในไฟล์ fetchurls.sh
คำเตือน : หากคุณไม่คุ้นเคยกับการแสดงออกของ GREP หรือปกติคุณสามารถทำลายสคริปต์ได้อย่างง่ายดาย