Cara menggunakan apa itu scraping python?

Hai gaes ^^ ketemu lagi dengan saya, pada postingan kali ini kita akan sama-sama belajar sesuatu yang SANGAT SERU, PENTING , sekaliguas MENARIK yang ada di dalam dunia data sciencs dan bisnis yaitu web scraping.

(image source : blog.apify.com)

Btw teman-teman sudah tau belum apa itu web scraping ? Nah kalau belum tau aku jelasin sedikit ya.

Jadi web scraping adalah suatu kegiatan yang kita lakukan ketika mengekstrak dan mengambil data dari suatu website lalu menyimpannya ke dalam Microsoft excel, google sheet dan aplikasi sejenis lainnya. (Ismi, 2021)

Web scraping ini sangat berguna lho teman-teman, apalagi dalam dunia bisnis. Karena dengan web scraping kita bisa mengambil dan mendapatkan informasi dari website manapun, baik itu seperti detail harga suatu barang, review pelanggan, email pelanggan dan lain sebagainnya, bisa dengan mudah kita dapatkan dan nantinya bisa kita olah untuk menentukan strategi bisnis kedepan.

Dengan web scraping kita tidak akan penah kekurangan data, karena internet jadi database kita ^^

Nah biar enggak bertele-tele langsung aja yuk kita belajar web scraping dengan mempraktekannya python.

Mari Scraping

Langkah 1 : Mengistall dan mengimport library

Hal pertama yang perlu kita lakukan adalah menginstall library Beautiful Soup, yaitu library yang akan memudahkan kita untuk mengscraping informasi dari website. Cara menginstall library-nya sendiri cukup mudah, teman-teman hanya perlu pergi ke command prompt dan mengetikan :

pip install bs4

Setelah library Beautiful Soup (bs4) terinstall selanjutnya kita perlu mengimport library tersebut dengan cara :

import bs4
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup

Disini kita tidak hanya mengimport bs4 tapi juga mengimport library urllib.request sebagai salah satu library web client yang berguna untuk membantu kita mengambil sesuatu dari internet.

Langkah 2: Mengkoneksikan web page

Oke setelah semuanya siap, selanjutnya kita akan mencari website mana yang akan kita scraping. Pada postingan kali ini kita akan mengscraping website goodreads.com, yaitu salah satu situs website favorit saya yang dikhususkan untuk katalogisasi buku. Nah, untuk bagian mananya teman-teman bisa lihat sendiri ya disini https://www.goodreads.com/list/show/83612.NY_Times_Fiction_Best_Sellers_2015

Setelah kita menemukan website mana yang akan kita scraping, selanjutnya kita akan mengambil link website tersebut dan mengcopynya kedalam syntax sebagai berikut :

my_url = ‘https://www.goodreads.com/list/show/83612.NY_Times_Fiction_Best_Sellers_2015'
my_url

Langkah selanjutnya, kita perlu membuat web client kita sendiri dan mengdownload web page tersebut dengan cara :

uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()

Oke selanjutnya kita akan menguraikan HTML yang telah kita punya dengan cara :

page_soup = soup(page_html, “html.parser”)

Untuk memastikan apakah kita syntax yang kita tuliskan sudah benar kita bisa melakukan pengecekan dengan perintah :

page_soup.h1

Dan apabila benar maka akan muncul output :

Ini merupakan output header dari web page yang sudah kita sambungkan. Kalau tidak percaya teman-teman bisa cocokan sendiri ya dengan websitenya ^^

Langkah 3 : Mengkonvert data dari HTML

Oke semuanya sudah siap, maka selanjutnya apa yang akan kita lakukan ? selanjutnya kita akan mengconvert data judul buku yang ada disana, berserta penulisnya, rating, dan scorenya. Maka pertama tama kita perlu ke website goodreads dan melakukan inspect, seperti ini :

Note : untuk melakukan inspect, cukup klik kanan dan klik inspect

Perlu diperhatikan bahwa, pada tahap ini teman-teman perlu mencari element yang tepat bagi data yang akan kita cari. Disini kita menemukan element <td width=”100%” valign=”top”>, karena element ini memuat semua informasi yang kita butuhkan, mulai dari judul buku, penulis, rating, dan score.

Apabila kita sudah menemukan element yang mengandung informasi yang dibutuhkan maka selanjutnya teman-teman perlu mengambil elemet tersebut dengan cara :

tds = page_soup.findAll(“td”, {“width”:”100%”,”valign”:”top”})

Note : Pada tahap ini teman-teman hanya perlu mencari satu element saja pada buku pertama yang mengandung semua informasi yang kita butuhkan untuk discraping, karena pada tahap selanjutnya kita akan melakukan perulangan dengan for, sehingga proses scraping serupa bisa kita lakukan pada buku yang lain.

Selanjutnya untuk memastikan apakah elementnya sudah benar kita bisa mengeceknya dengan cara :

len(tds)

Maka outputnya akan terlihat sebagai berikut :

Sesuai dengan jumlah buku yang ada pada halaman tersebut yaitu 100 buku ^^

Langkah selanjutnya kita akan mengambil elemet buku pertama sebagai patokan awal dalam melakukan scraping pada buku lainnya dengan cara :

book1 = tds[0]
book1

Dan outputnya akan terlihat sebagai berikut :

Bisa teman-teman lihat pada output HTML diatas sangatlah berantakan dan tidak bisa terbaca, oleh sebab itu kita perlu merapihkannya dengan cara mengcopy semua HTML tersebut, lalu merapihkannya di website https://beautifier.io/ dan akan terlihat sebagai berikut :

Selanjutnya copy semua HTML yang sudah rapih tersebut dan paste ke dalam notepad kalian, yang akan terlihat sebagai berikut :

Note : pada postingan kali ini saya menggunakan sublime 3

Langkah 4: Membangun scraper

Oke selanjutnya kita akan mulai mengambil data di dalam website tersebut, data pertama yang akan kita ambil adalah data judul buku, maka hal pertama yang perlu kita lakukan adalah mecari dimana data judul buku tersebut berada. Pada HTML tersebut judul buku berapa disini :

Bisa teman-teman lihat pada gambar diatas judul buku berada di dalam <span, dimana untuk menuju <span kita perlu melewati <a — <span (untuk bagian <td tidak dihitung karena sudah didefinisikan diawal pada variabel book1) maka kita bisa mengambil datanya dengan cara :

books = book1.a.select(“span”)
title = books[0].text
title

Lalu selanjutnya untuk data penulisnya berada pada HTML berikut :

Bisa dilihat bahwa data penulis berada <a, dan untuk menuju <a kita perlu melewati <div — <a maka kita bisa mengambil datanya dengan cara :

import bs4
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
0

Lalu untuk data rating berada pada HTML berikut :

Untuk data rating kita tidak bisa mengambil datanya seperti cara sebelumnya, karena data rating jauh berada di dalam HTML namun, pada data rating kali ini kita akan menggunakan perintah findAll, yang akan terlihat sebagai berikut :

import bs4
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
1

Bisa dilihat pada perintah findAll dibaris pertama kita mengarahkan perintah ke <span class=”greyText smallText uitext”> lalu dibaris kedua kita memerintahkan program untuk mencari text yaitu data rating.

Lalu terakhir untuk data score terdapat pada HTML berikut :

Dimana data score ini jauh lebih dalam lagi dan kita perlu menggunakan perintah findAll yang akan terlihat sebagai berikut :

import bs4
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
2

Pada perintah findAll ini, kita juga melakukan hal yang sama seperti data rating yaitu, kita perlu mengarahkan perintah kedalam HTML dimana data itu berada, disini datanya berada di <div style=“margin-top: 5px”>. Dan di baris selanjutnya memerintahkan program untuk mencari data text rating, dan membuang kalimat score di data kita.

SYNTAX LENGKAP

Nah karena kita sudah tahu dan membangun cara untuk mengambil data di data buku pertama, maka selanjutnya kita akan melakukan perulangan dan mengimport semua data yang kita dapatkan ke dalam csv. Dan adapun syntax lengkapnya akan terlihat sebagai berikut :

import bs4
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
3

Apabila teman-teman sudah menjalankan semua syntaxnya maka, di dalam computer kalian akan terdapat databuku.csv yang merupakan data berisi kumpulan buku, penulis, score dan rating buku yang sudah kalian scraping sebelumnya.

Gimana teman-teman, mudah kan ? Okedeh mungkin cukup sampai sini dulu ya teman-teman untuk postingan kali ini.

Bagi teman teman yang ingin bertanya bisa tanya di kolom komentar ya..

Atau bisa juga lewat :

Email : @[email protected]

Terima Kasih

Refrensi :

Dojo, D. S. (Director). (2017). Intro to Web Scraping with Python and Beautiful Soup [Motion Picture].

Ismi, T. (2021, Febuari 15). Web Scraping: Pengertian dan Apa Saja Manfaatnya Bagi Bisnis. Retrieved from glints:

Langkah Langkah Data Scraping?

Langkah-langkah umum dalam scraping data adalah: mengidentifikasi website atau dokumen yang akan di scrape, inspect element pada website untuk menemukan struktur HTML yang digunakan, membuat skrip atau kode untuk mengekstrak data dari element yang ditentukan dan menjalankan skrip atau kode tersebut dan menyimpan data ...

Apa fungsi dari scraping?

Web scraping adalah sebuah metode yang bisa membantu kamu untuk melakukan riset pasar, riset kompetitor, riset harga, riset berita, dan masih banyak lagi. Singkatnya web scraping adalah ekstraksi website atau pengambilan data dari website.

Apa bedanya scraping dan crawling?

Crawling mengacu pada pengindeksan informasi dari halaman web untuk mengambil informasi, sedangkan scraping adalah kegiatan ekstraksi data dari situs web atau halaman web. Kedua aktivitas tersebut dilarang keras di Shopee.

Apa yang dimaksud scraping dalam analisis data?

Web scraping adalah sebuah cara pengambilan suatu data atau informasi tertentu dengan jumlah besar untuk nantinya digunakan dalam berbagai keperluan seperti riset, analisis dan lainnya. Dibandingkan dengan melakukan survei secara manual.