Sekilas Tentang Web Scraping
Web scraping adalah proses pengambilan data dari website secara otomatis. Ini dapat digunakan untuk berbagai tujuan, termasuk dalam dunia bisnis. Misalnya, web scraping dapat digunakan untuk mengumpulkan informasi seperti detail harga barang, ulasan pelanggan, dan email pelanggan. Informasi ini kemudian dapat digunakan untuk menentukan strategi bisnis, seperti menetapkan harga, meningkatkan layanan pelanggan, dan memasarkan produk atau layanan.
Web scraping adalah alat yang ampuh yang dapat digunakan untuk meningkatkan bisnis. Namun, penting untuk menggunakan web scraping secara etis. Pastikan untuk meminta izin pemilik website sebelum mengumpulkan data dari website mereka. Anda juga harus menghindari mengumpulkan data yang tidak relevan atau tidak diperlukan.
Berikut adalah beberapa tips untuk menggunakan web scraping secara etis:
- Minta izin pemilik website sebelum mengumpulkan data dari website mereka.
- Kumpulkan hanya data yang relevan dan diperlukan.
- Jangan menggunakan web scraping untuk mengumpulkan data yang bersifat pribadi atau rahasia.
- Jangan menggunakan web scraping untuk merusak atau mengganggu website.
Dengan mengikuti tips ini, Anda dapat menggunakan web scraping untuk meningkatkan bisnis Anda secara etis.
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
Tentu, berikut adalah paragraf yang diparafrasekan:
Setelah semuanya siap, sekarang saatnya untuk memilih situs web yang akan di-scraping. Dalam posting ini, kami akan mengscraping situs web Goodreads, yang merupakan salah satu situs web favorit saya yang khusus untuk katalogisasi buku. Anda dapat melihat bagian yang ingin kami scrape di sini: https://www.goodreads.com/list/show/83612.NY_Times_Fiction_Best_Sellers_2015
Setelah memilih situs web yang akan di-scraping, langkah selanjutnya adalah mengambil URL situs web tersebut dan menyalinnya ke sintaks berikut:
my_url = 'https://www.goodreads.com/list/show/83612.NY_Times_Fiction_Best_Sellers_2015'
Langkah selanjutnya, kita perlu membuat klien web kita sendiri dan mengunduh halaman web tersebut dengan cara berikut:
uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()
Selanjutnya, kita akan menguraikan HTML yang telah kita punya dengan cara berikut:
page_soup = soup(page_html, "html.parser")
Untuk memastikan apakah sintaks yang kita tuliskan sudah benar, kita bisa melakukan pengecekan dengan perintah berikut:
page_soup.h1
Dan apabila benar, maka akan muncul output berikut:
Ini merupakan output header dari web page yang sudah kita sambungkan. Kalau tidak percaya teman-teman bisa cocokan sendiri ya dengan websitenya ^^ Langkah 3: Konversi Data dari HTML
Sekarang semuanya sudah siap. Selanjutnya, kita akan mengonversi data judul buku, penulis, rating, dan skor dari Goodreads. Pertama, kita perlu membuka situs web Goodreads dan memeriksanya.
Pada tahap ini, penting untuk menemukan elemen yang tepat yang berisi data yang ingin kita cari. Di dalam situs web Goodreads, elemen yang tepat adalah <td width=”100%” valign=”top”>
, karena elemen ini memuat semua informasi yang kita butuhkan, mulai dari judul buku, penulis, rating, dan score.
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)
SCRIPT 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 soupmy_url = 'https://www.goodreads.com/list/show/83612.NY_Times_Fiction_Best_Sellers_2015'
my_url# opening dan connection to website
uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()# html parsing
page_soup = soup(page_html, "html.parser")# graps the product
tds = page_soup.findAll("td", {"width":"100%","valign":"top"})file = "databuku.csv"
header = "title,author,rating,score \n"
f = open(file, "w")
f.write(header)for td in tds :
books = td.a.select("span")
title = books[0].text
authors = td.div.select("a")
author = authors[0].text
ratings = td.findAll("span",{"class":"greyText smallText uitext"})
rating = ratings[0].text.strip().replace(",",".")
scores = td.findAll("div",{"style":"margin-top: 5px"})
score =
scores[0].span.a.text.strip().replace("score:","").replace(",",".").replace(" ","")print("book_name: "+ title)
print("author: "+ author)
print("rating: "+ rating)
print("goodreads_score: "+ score)f.write(title.replace(",","") + ", " + author + ", " + rating + ", " + score +"\n")f.close()
Sumber
https://gumelarmuhamad26.medium.com/cara-melakukan-web-scraping-dengan-python-lengkap-106a832b2a4e
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: https://glints.com/id/lowongan/web-scraping-adalah/#.YNR0yegzbIU