Sebuah skrip bash untuk laba-laba situs, ikuti tautan, dan ambil URL (dengan pemfilteran bawaan) ke dalam file teks yang dihasilkan.
Unduh skrip dan simpan ke lokasi yang diinginkan di mesin Anda.
Anda perlu wget pada mesin Anda.
Untuk memeriksa apakah sudah diinstal, coba jalankan perintah wget dengan sendirinya.
Jika Anda menggunakan Mac atau menjalankan Linux, kemungkinan Anda sudah menginstal WGet; Namun, jika perintah wget tidak berfungsi, itu mungkin tidak ditambahkan dengan benar ke variabel jalur Anda.
Jika Anda menjalankan Windows:
Unduh Binary wget Lastest untuk Windows dari https://eternallybored.org/misc/wget/
Unduhan tersedia sebagai zip dengan dokumentasi, atau hanya exe. Saya akan merekomendasikan EXE saja.
Jika Anda mengunduh ZIP, ekstrak semua (jika windows built in zip utility memberikan kesalahan, gunakan 7-zip). Selain itu, jika Anda mengunduh versi 64-bit, ganti nama file wget64.exe ke wget.exe
Pindahkan wget.exe ke C:WindowsSystem32
Pastikan versi grep di komputer Anda mendukung -E, --extended-regexp . Untuk memeriksa dukungan, jalankan grep --help dan cari bendera. Untuk memeriksa versi yang diinstal, jalankan grep -V .
Buka Bash Git, Terminal, dll. Dan atur izin menjalankan untuk skrip fetchurls.sh :
chmod +x /path/to/script/fetchurls.shMasukkan yang berikut untuk menjalankan skrip:
./fetchurls.sh [OPTIONS]...Atau, Anda dapat mengeksekusi dengan salah satu dari yang berikut:
sh ./fetchurls.sh [OPTIONS]...
# -- OR -- #
bash ./fetchurls.sh [OPTIONS]...Jika Anda tidak melewati opsi apa pun, skrip akan berjalan dalam mode interaktif.
Jika URL domain memerlukan otentikasi, Anda harus meneruskan nama pengguna dan kata sandi sebagai bendera; Anda tidak diminta untuk nilai -nilai ini dalam mode interaktif.
Anda dapat melewati opsi (sebagai bendera) langsung ke skrip, atau tidak memberikan apa pun untuk menjalankan skrip dalam mode interaktif.
-d , --domainhttps://example.comURL domain yang sepenuhnya memenuhi syarat (dengan protokol) Anda ingin merangkak.
Pastikan Anda memasukkan protokol yang benar (misalnya https ) dan subdomain untuk URL atau file yang dihasilkan mungkin kosong atau tidak lengkap. Skrip akan secara otomatis mencoba untuk mengikuti pengalihan HTTP pertama, jika ditemukan. Misalnya, jika Anda memasukkan protokol yang salah ( http://... ) untuk https://www.adamdehaven.com , skrip akan secara otomatis mengikuti pengalihan dan mengambil semua URL untuk protokol HTTPS yang benar.
URL domain akan berhasil dibumbui selama URL target (atau pengalihan pertama) mengembalikan status HTTP 200 OK .
-l , --location~/Desktop/c/Users/username/DesktopLokasi (direktori) tempat Anda ingin menyimpan hasil yang dihasilkan.
Jika direktori tidak ada di lokasi yang ditentukan, selama sisa jalur valid, direktori baru akan secara otomatis dibuat.
-f , --filenamedomain-topleveldomainexample-comNama yang diinginkan dari file yang dihasilkan, tanpa spasi atau ekstensi file.
-e , --exclude"css|js|map"Daftar ekstensi file yang dibatasi pipa untuk dikecualikan dari hasil.
Untuk mencegah tidak termasuk file yang cocok dengan daftar default ekstensi file, cukup berikan string kosong ""
-s , --sleep02Jumlah detik untuk menunggu antara pengambilan.
-u , --usernamemarty_mcflyJika URL domain membutuhkan otentikasi, nama pengguna untuk meneruskan ke perintah WGET.
Jika nama pengguna berisi karakter ruang, Anda harus melewati kutipan di dalam. Nilai ini hanya dapat diatur dengan bendera; Tidak ada prompt dalam mode interaktif.
-p , --passwordthats_heavyJika URL domain memerlukan otentikasi, kata sandi untuk diteruskan ke perintah WGET.
Jika kata sandi berisi karakter ruang, Anda harus melewati kutipan di dalam. Nilai ini hanya dapat diatur dengan bendera; Tidak ada prompt dalam mode interaktif.
-n , --non-interactiveMemungkinkan skrip untuk berjalan dengan sukses dalam cangkang non-interaktif.
Script akan memanfaatkan pengaturan default --location dan --filename kecuali bendera masing -masing diatur secara eksplisit.
-i , --ignore-robotsAbaikan robots.txt untuk domain.
-w , --wgetTampilkan instruksi pemasangan wget. Instruksi instalasi dapat bervariasi tergantung pada konfigurasi komputer Anda.
-v , -V , --versionTampilkan informasi versi.
-t , --troubleshootingOutput menerima bendera opsi dengan nilai -nilai terkait saat runtime untuk pemecahan masalah.
-h , -? , --helpTunjukkan konten bantuan.
Jika Anda tidak lulus -bendera -domain, skrip akan berjalan dalam mode interaktif dan Anda akan diminta untuk opsi yang tidak disetel.
Pertama, Anda akan diminta untuk memasukkan URL lengkap (termasuk protokol https/http) dari situs yang ingin Anda rayak:
Fetch a list of unique URLs for a domain.
Enter the full domain URL ( http://example.com )
Domain URL:Anda kemudian akan diminta untuk memasukkan lokasi (direktori) di mana Anda ingin hasil yang dihasilkan disimpan (default ke desktop di windows):
Save file to directory
Directory: /c/Users/username/DesktopSelanjutnya, Anda akan diminta untuk mengubah/menerima nama file yang dihasilkan (cukup tekan ENTER untuk menerima nama file default):
Save file as
Filename (no file extension, and no spaces): example-comAkhirnya, Anda akan diminta untuk mengubah/menerima daftar default ekstensi file yang dikecualikan (tekan Enter untuk menerima daftar default):
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 | xmlScript akan merangkak situs dan menyusun daftar URL yang valid ke dalam file teks baru. Saat selesai, skrip akan menampilkan pesan dan lokasi file yang dihasilkan:
Fetching URLs for example.com
Finished with 1 result !
File Location:
/c/Users/username/Desktop/example-com.txtJika file dengan nama yang sama sudah ada di lokasi (misalnya jika Anda sebelumnya menjalankan skrip untuk URL yang sama), file asli akan ditimpa .
Script, secara default, memfilter banyak ekstensi file yang biasanya tidak diperlukan.
Daftar ekstensi file dapat diteruskan melalui bendera --exclude , atau disediakan melalui mode interaktif.
.bmp.css.doc.docx.gif.jpeg.jpg.JPG.js.map.pdf.PDF.png.ppt.pptx.svg.ts.txt.xls.xlsx.xmlSelain itu, file dan direktori situs tertentu (termasuk WordPress) juga diabaikan.
/wp-content/uploads//feed//category//tag//page//widgets.php//wp-json/xmlrpc Script harus memfilter sebagian besar jenis file dan direktori yang tidak diinginkan; Namun, Anda dapat mengedit ekspresi reguler yang menyaring halaman, direktori, dan jenis file tertentu dengan mengedit fungsi fetchUrlsForDomain() dalam file fetchurls.sh .
PERINGATAN : Jika Anda tidak terbiasa dengan GREP atau ekspresi reguler, Anda dapat dengan mudah memecahkan skrip.