Diskusi:085181735954

Website Statis Tutorial Opensource

Membuat Perayapan Web Dengan FreeBSD Dan Python

Terbit: Perbarui:
Tags

Sebuah Web crawler, spider, atau bot mesin pencari mengunduh dan mengindeks konten dari situs web, seperti blog, WordPress, atau platform lainnya. Tujuan dari bot semacam itu adalah untuk mengenali (hampir) setiap halaman blog yang ada di internet, sehingga informasi tersebut dapat ditemukan kembali saat dibutuhkan.

Bot ini disebut sebagai web crawler karena proses crawling (penelusuran) merupakan istilah teknis untuk tindakan mengakses situs blog secara otomatis guna memperoleh data melalui suatu program perangkat lunak.

Bot-bot ini hampir selalu dioperasikan oleh mesin pencari, seperti Google Search Console (GSC). Dengan menerapkan algoritma terstruktur pada data yang dikumpulkan oleh perayap web (web crawler), mesin pencari dapat menyajikan tautan yang relevan sebagai tanggapan atas kueri pencarian pengguna baik pengguna blog maupun WordPress sehingga menghasilkan daftar halaman web yang muncul setelah pengguna mengetikkan pencarian di Google, Bing, Yandex, atau mesin pencari lainnya.

Bot perayap web (web crawler) bekerja layaknya seseorang yang menelusuri semua buku di perpustakaan yang tidak teratur, lalu menyusun katalog kartu agar siapa pun yang berkunjung ke perpustakaan tersebut dapat menemukan informasi yang mereka butuhkan dengan cepat dan mudah.

Akan tetapi, berbeda dengan perpustakaan, sebuah situs web atau blog tidak terdiri dari tumpukan buku fisik. Oleh karena itu, sulit untuk mengetahui apakah semua informasi yang diperlukan telah diindeks dengan benar, atau justru ada banyak informasi penting yang terlewatkan.

Bot perayap (crawler bot) berupaya menemukan semua informasi relevan yang ditampilkan oleh sebuah blog. Bot perayap web akan memulai dari sekumpulan halaman blog tertentu yang sudah diketahui, lalu mengikuti tautan (hipertautan) dari halaman-halaman tersebut menuju halaman lain, kemudian mengikuti tautan dari halaman-halaman lain itu ke halaman-halaman berikutnya, dan seterusnya.

web crawler python
Diagram Web Crawler Python

Dalam artikel ini, pertama-tama kita akan memperkenalkan crawler bot untuk menjelajahi sebuah situs blog. Selanjutnya, kita akan membangun web crawler menggunakan Python, dan terakhir, kita akan mempraktikkan cara penggunaan web crawler berbasis Python tersebut.

Untuk mengerjakan web crawler ini, kami menggunakan server server berbasis FreeBSD Stable dengan Python 3.10. Namun, Anda dapat menerapkan seluruh isi artikel ini pada server Ubuntu maupun Debian.

1. Proses Instalasi

Search Engine Optimization atau yang lebih dikneal dengan istilah SEO adalah salah satu strategi marketing yang mengupayakan atau mengoptimasi website untuk mendapatkan posisi teratas pada hasil pencarian di search engine seperti Google ataupun bing.

Supaya halaman website mendapat peringkat teratas di search engine, website tersebut perlu diindeks dengan perayap bot crawler seperti Python ataupun lainnya.

Langkah pertama yang harus Anda lakukan adalah menginstal Python pada server FreeBSD. Setelah itu, instal juga Python PIP dan Python Virtual Environment (VENV). Silakan baca artikel kami sebelumnya mengenai Python PIP dan Python Virtual Environment (VENV).

Cara Menginstal Manajer Paket Python PIP di FreeBSD 14

Dalam artikel ini, kami akan menjelaskan cara membuat aplikasi web menggunakan Django, sebuah framework Python yang populer. Implementasi aplikasi Django dalam artikel ini menggunakan server FreeBSD

Untuk membuat perayap situs web (web crawler) dengan Python, kita memerlukan beberapa pustaka Python yang berfungsi untuk mengunduh berkas HTML dari URL serta mengekstrak tautan. Untuk keperluan ini, Python telah menyediakan pustaka standar urllib untuk melakukan permintaan HTTP dan html parser untuk mengurai (parsing) HTML.

Kami juga telah mengoptimalkan kemampuan perayap web ini dengan bantuan pustaka lain, seperti Requests dan Beautiful Soup (BS4), yang memberikan pengalaman pengembangan lebih baik saat melakukan permintaan HTTP dan menangani dokumen HTML.

Kami mengasumsikan Anda telah memasang Python PIP dan Python VENV, sehingga kita bisa langsung beralih ke lingkungan virtual (virtual environment) Python. Dalam artikel ini, kami telah membuat lingkungan virtual Python di direktori /root/.cache/pypoetry.

Aktifkan virtual python
root@ns7:~ # cd /root/.cache/pypoetry
root@ns7:~/.cache/pypoetry # source bin/activate.csh
(pypoetry) root@ns7:~/.cache/pypoetry #

Anda dapat langsung menginstal dua pustaka Python, yaitu Requests dan Beautiful Soup.

Install pustaka python request dan bs4
(pypoetry) root@ns7:~/.cache/pypoetry # pip install requests bs4

2. Membangun Web Crawler dengan Python

Web crawler berbasis Python adalah program otomatis yang menjelajahi blog atau situs web untuk menelusuri seluruh konten di dalam halaman web. Program ini berupa skrip Python yang merayapi halaman, menemukan tautan, lalu mengikutinya untuk keperluan pengindeksan. Tujuannya adalah agar tautan URL Anda dapat ditemukan oleh mesin pencari.

Mesin pencari mengandalkan bot perayap (crawling bots) untuk menyusun dan memelihara indeks halaman mereka, sementara alat pengambil data web (web scrapers) menggunakan bot serupa untuk mengunjungi serta menemukan semua halaman guna menerapkan logika ekstraksi data.

Artikel ini akan mempermudah Anda dalam melakukan perayapan situs web. Anda hanya perlu mengunduh berkas yang telah kami sediakan di GitHub, lalu menempatkan berkas tersebut ke dalam direktori VENV Python Anda.

kloning repositori web crawler dari github
root@ns7:~/.cache/pypoetry # git clone https://github.com/unixwinbsd/PythonWebCrawler.git

Setelah proses kloning kelar, buka file crawlerino.py, lalu anda ubah nama domainnya menjadi domain Anda sendiri.

if __name__ == "__main__":
    # set stdout to support UTF-8
    sys.stdout = open(sys.stdout.fileno(), mode="w", encoding="utf-8", buffering=1)
    START = default_timer()
    crawler("https://www.unixwinbsd.site", maxpages=1000)
    END = default_timer()
    print("Elapsed time (seconds) = " + str(END - START))

Ganti "https://www.unixwinbsd.site" dengan domain Anda. Setelah itu, Anda dapat menjalankan proses crawling. Gunakan Python VENV untuk membuka aplikasi ini.

Menjalankan proses crawling
root@ns7:~ # cd /root/.cache/pypoetry
root@ns7:~/.cache/pypoetry # source bin/activate.csh
(pypoetry) root@ns7:~/.cache/pypoetry # cd PythonWebCrawler
(pypoetry) root@ns7:~/.cache/pypoetry/PythonWebCrawler # python crawlerino.py
jalankan web crawler
Tampilan Web Crawler Python Yang Sedang Berjalan

Sebenarnya, ada banyak cara untuk melakukan crawling data web menggunakan Python. Hal ini bergantung pada kompleksitas lokasi target serta skala proyeknya. Untuk tugas crawling dan scraping dasar, aplikasi crawling yang dibahas dalam artikel ini sudah cukup untuk memanggil Googlebot.