Wget untuk Memeriksa Link dalam Laman Blog

Semua benci jika tautan dalam blog ternyata rusak. Pengunjung benci. Pemilik benci. Search engine juga ikut-ikutan benci.

Tautan yang rusak dalam artikel blog baru-baru ini saya alami. Itu juga karena komentar dari pembaca artikel. Maklum, saya biasanya dalam menulis artikel itu menganut faham write and forget. Ternyata menurut kaidah blogging yang baik, seorang pemilik blog mesti rajin-rajin memeriksa tautan-tautan yang ada dalam blognya. Hmmm, sepertinya merepotkan...

Well, mungkin tidak begitu merepotkan. Karena setelah sedikit mencari di dunia maya, dengan mudah saya menemukan banyak artikel atau layanan atau perangkat lunak yang bisa membantu kita memeriksa kesehatan tautan dalam blog.
Satu yang saya coba adalah https://validator.w3.org/checklink. Hasilnya cukup komprehensif, semua tautan dalam laman blog ia periksa. Mungkin karena itu prosesnya lumayan lama. Ditambah tiap pemeriksaan diberi jeda 1 detik yang bertujuan meringankan beban server laman yang diperiksa.

Hasil pemeriksaan tautan oleh W3C Validator

Less is more.

Kali ini saya tidak memerlukan laporan menyeluruh mengenai tautan dalam laman blog, namun hanya kesehatan tautan dalam artikel. Dan layanan-layanan validator seperti di atas melebihi yang saya butuhkan.
Nah, artikel kali akan menjabarkan upaya saya memeriksa tautan dalam artikel blog dengan menggunakan wget. Here is how...

Alkisah, artikel yang dilaporkan memiliki tautan yang rusak adalah yang berjudul Buku Bahan Bacaan Literasi Cerita Rakyat. Artikel ini berisi lebih dari 100 tautan menuju berkas PDF buku elektronik cerita rakyat. Mari kita periksa...

Pertama, unduh berkas HTML laman artikel tersebut.

wget http://www.rizaumami.com/2017/06/buku-bahan-bacaan-literasi-cerita-rakyat.html

Karena kita tidak menentukan nama berkas hasil unduhan, wget akan menamai berkas tersebut sesuai dengan nama dalam tautan, yakni buku-bahan-bacaan-literasi-cerita-rakyat.html.

Berikutnya, kita ambil tautan menuju berkas PDF dan periksa satu-per-satu. Hasil pemeriksaan akan kita simpan dalam berkas checked_link.

while read tautan; do
  wget --spider -nv "$tautan" -a checked_link
done < (grep -o "http.*pdf" buku-bahan-bacaan-literasi-cerita-rakyat.html)

Begini cara membaca perintah di atas:

  • grep akan mencari string yang mengandung kata "http" sampai dengan "pdf" dalam berkas buku-bahan-bacaan-literasi-cerita-rakyat.html
  • Tiap tautan hasil dari grep akan diolah menggunakan perulangan while loop.
  • Tautan-tautan tersebut kemudian kita uji kesahihannya dengan menggunakan wget.
    Flag wget yang digunakan adalah sebagai berikut:
    • --spider Agar wget tidak mengunduh apapun.
    • -nv atau --no-verbose Mengurangi keluaran wget agar tidak terlalu ramai.
    • -a atau --append-output Agar keluaran wget ditambahkan ke dalam berkas.
  • Setelah menunggu beberapa saat hingga pemeriksaan usai--tergantung jumlah tautan dan kecepatan internet--hasil pemeriksaan dapat dilihat di berkas checked_link.
    Namun isinya masih bercampur antara tautan yang sehat dan tautan yang rusak. Gunakan fitur pencarian pada penyunting teks yang digunakan untuk membuka berkas, atau kita bisa gunakan bantuan grep:
    grep -B1 "broken link" checked_link
    

Akhirnya nama tautan yang rusak pun sudah didapat. Ada dua pilihan untuk menyikapinya; (1) memperbaiki tautan, atau (2) menghapus tautan dari dalam artikel.
Karena tautan yang saya tulis dalam artikel Buku Bahan Bacaan Literasi Cerita Rakyat adalah tautan yang saya salin dari laman lain, saya tidak memiliki kuasa untuk memperbaikinya. Jadi jalan satu-satunya adalah menghapus tautan yang rusak dari dalam artikel.

That's it...
Tautan sehat. Pengunjung senang. Pemilik blog senang. Search engine pun senang.