3426 Jurnal Teknik Informatika dan Sistem Informasi ISSN 2407-4322 Vol. 9, No. 4, Desember 2022, Hal. 3426-3435 E- ISSN 2503-2933
Penerapan Web Scraping Deskripsi Produk Menggunakan Selenium Python Dan Framework Laravel
Stephen Kusumo 1 , Ramos Somya 2
1,2 Universitas Kristen Satya Wacana; Jl. Dr. O. Notohamidjojo No.1, Salatiga 50715, telp/fax of (0298) 321212
3 Program Studi Teknologi Informatika, FTI UKSW, Salatiga e-mail: 1 672017027@student.uksw.edu , 2 ramos.somya@uksw.edu

## Abstrak
Perkembangan  kegiatan  jual-beli  barang  pada  pasar  online  dapat  berpengaruh terhadap perkembangan perdagangan elektronik (E-Commerce).  Banyak situs-situs E- Commerce yang menawarkan produk dengan harga dan deskripsi yang berbeda. Dalam melakukan pengolahan data produk dalam sebuah pasar online (Marketplace) tentunya dapat menghabiskan waktu yang tidaklah sedikit bila memiliki data produk yang sangat banyak.  Keterbatasan  waktu  dalam  mengelola  data  produk  dapat  diatasi  dengan menggunakan  proses  web  scraping.  Web  scraping  adalah  proses  pengambilan  sebuah dokumen  semi-terstruktur  dari  internet  dengan  tujuan  untuk  mengambil  data  atau informasi  secara  keseluruhan  atau  sebagian  dari  halaman  berupa  website  dengan bahasa  markup  seperti  HTML  atau  XHTML  untuk  kepentingan  yang  lain.  Dengan permasalahan  tersebut  maka  dilakukan  perancangan  system  menggunakan  selenium dan  framework  laravel  untuk  mengambil  data  maupun  melakukan  edit  data  agar menjadi lebih efisien dalam mengatur data produk yang dimiliki. Hasil dari penerapan web  scraping  adalah  pengguna  dapat  mengambil  data  informasi  berupa  deskripsi produk  dengan  akurat  dan  cepat  pada  situs  e-marketplace  dan  e-commerce  yaitu Shopee dengan menggunakan penyimpanan database MySQL.
Kata kunci : Web Scraping, Selenium, Python, Framework Laravel

## Abstract
The development of buying and selling goods on the online market can affect the development  of  electronic  commerce  (E-Commerce).  Many  E-Commerce  sites  offer products  with  different  prices  and  descriptions.  Processing  product  data  in  an  online market (Marketplace) can certainly spend a lot of time if you have a lot of product data. Time constraints in managing product data can  be overcome by using a  web scraping process. Web scraping is the process of retrieving a semi-structured document from the internet with the aim of retrieving data or information in whole or in part from a page in  the  form  of  a  website  with  a  markup  language  such  as  HTML  or  XHTML  for  other purposes. With these problems, a system design was carried out using selenium and the Laravel framework to retrieve data and edit data to be more efficient in managing the product  data  owned.  The  result  of  the  application  of  web  scraping  is  that  users  can retrieve information data in the form of product descriptions quickly and accurately on e-commerce sites and e-marketplaces, namely Shopee using MySQL database storage.
Keywords : Web Scraping, Selenium, Python, Framework Laravel
Jatisi                             ISSN 2407-4322 Vol. 9, No. 4, Desember 2022, Hal. 3426-3435 E- ISSN 2503-2933 3427

## 1. PENDAHULUAN
Kehidupan  manusia  yang  modern  ini,  internet  sudah  menjadi  kebutuhan  yang penting.  Dengan  internet  berkembangnya  teknologi  dan  kebutuhan  informasi mengalami  banyak  perkembangan.  Perkembangan  dalam  dunia  bisnis  yang  produknya merupakan e-commerce adalah salah satu pengaruh dari berkembangnya teknologi dan internet [1]. E-Commerce adalah proses jual-beli barang maupun jasa secara elektronik dengan  menggunakan  teknologi  digital  dan  jaringan  internet  [2]. Marketplace adalah tempat penjual dan pembeli melakukan kegiatan jual-beli produk secara elektronik [3]. Berjualan secara online menggunakan situs-situs e-commerce dan marketplace menjadi pilihan  untuk  para  penjual  dalam  menawarkan  barang  kepada  konsumen.  Berjualan secara  online  memberi  kemudahan  dalam  meningkatkan  perekonomian  karena  produk dapat dipasarkan mulai dari didalam Kota sendiri hingga luar pulau.
Setiap produk memiliki informasi yang berbeda-beda, mulai dari deskripsi, jenis, harga,  stok  produk,  dan  lainnya.  Para  penjual  yang  memiliki e-commerce marketplace diharuskan  untuk  mengatur  dan  mengolah  informasi  data  porduk  agar  para  pembeli dapat  mengerti  produk  yang  dijual.  Dalam  hal  ini  para  penjual  yang  memiliki e- commerce marketplace yang  banyak  harus  mengolah  informasi  data  produk  secara berulang  agar  sesuai  dengan  barang  yang  dimiliki.  Sebagai  contoh  seperti  banyaknya stok yang dimiliki saat ini. Bila penjual memiliki 2 marketplace yang berbeda (A dan B) dengan produk yang sama dan jumlah yang sama (Produk X), saat produk X terjual di marketplace A  maka  stok  barang  akan  berkurang,  namun    di  dalam marketplace B produk tidak mengalami pengurangan dalam jumlah stok nya. Di dalam marketplace B penjual harus melakukan edit produk secara manual pada bagian jumlahnya agar sesuai. Hal serupa dapat terjadi pada informasi – informasi produk yang lainnya. Penjual harus meluangkan banyak waktu untuk selalu mengatur dan mengedit informasi produk pada seluruh marketplace miliknya.  Apabila  penjual  memiliki  banyak marketplace dan banyak produk maka dapat dipastikan penjual perlu banyak waktu yang tidaklah sedikit untuk mengolah datanya dengan informasi yang terbaru.
Dalam  permasalahan  tersebut,  Keterbatasan  waktu  dalam  mengolah  data  dapat diatasi  dengan  menggunakan  teknik Web  Scraping.  Web  Scraping merupakan  suatu teknik  yang  digunakan  untuk  mendapatkan  suatu  data  atau  informasi  pada  website tertentu.  Informasi  yang  didapat  berupa,  teks,  tautan,  video,  audio  ataupun  dokumen. Penelitian  Teknik  Web Scraping dilakukan  dengan  batasan-batasan  yang  ditetapkan. Adapun  batasannya  adalah  aplikasi  website  yang  dibuat  menggunakan  bahasa pemrograman PHP dan framework  laravel, serta  bahasa  pemrograman phyton dengan library selenium untuk penerapan scraping datanya . Target pengambilan informasi data menggunakan marketplace Shopee  dengan version:  2.54.3. Database  yang  digunakan adalah database MySQL .
Dalam  penelitian  Mohammad  Djufri  penelitian  menggunakan  aplikasi  dari websraper.io dan instant data scraper dari webrobots.io yang merupakan extension dari Chrome . Dalam penelitiannya diharapkan teknik web Scraping yang dilakukan terhadap tiga situs online marketplace dapat memberi kontribusi dalam penggalian potensi pajak dan implikasi kebijakan dalam hal pencarian data melalui internet oleh DJP [4].
3428 Jatisi ISSN 2407-4322 Vol. 9, No. 4, Destember 2022, Hal. 3426-3435 E-ISSN 2503-2933
Penelitian  menggunakan  teknik web  scraping juga  pernah  dilakukan  oleh  Dhita Deviacita  A.  Yani.  Dalam  penelitiannya  dilakukan  pengujian  dengan  menggunakan white  box  testing dan black  box  testing .  Hasil  pengujian  sistem  telah  mampu memberikan  hasil  terbaik  produk  dari  gabungan  hasil  pencarian  di  tiga  situs web marketplace sesuai kata kunci yang dimasukkan oleh pengguna [5].
Berikutnya,  penelitian  dilakukan  oleh  Dana  Febri  Setiawan  menggunakan  teknik Parsing  HTML melalui JavaScript dan  menarget  halaman HTML  linear dan nested dalam  melakukan scraping pada  beberapa  marketplace.  Hasil  penerapan  dari  sistem informasi web  scraping tersebut  adalah  teknik web  scraping dapat  digunakan  sebagai pengambilan  isi  konten  deskripsi  dari  produk  dengan  cepat  dan  akurat  pada  berbagai situs e-marketplace dan e-commerce yang memuat deskripsi penjualanan produk [6].
Aplikasi yang dibuat memiliki tujuan agar menjelaskan bahwa pengambilan data / Scraping pada marketplace dapat dilakukan dengan cara yang berbeda – beda dan untuk kepentingan  yang  berbeda-  beda  mulai  dari  pengambilan  data  untuk  melakukan penghitungan pajak, informasi product untuk dilihat, maka penelitian dilakukan dengan membuat aplikasi web Management Marketplace dengan melakukan Scraping data pada marketplace dengan mengambil data dengan menggunakan selenium phyton .

## 2. METODE PENELITIAN
Pada  penelitian  yang  dilakukan,  tahapan  penelitian  dibagi  kedalam  5  tahapan, yaitu:  1)  Analisis  kebutuhan  dan  pengumpulan  data,  2)  Perancangan  sistem,  3) Perancangan  aplikasi  /  program,  4)  Implementasi  dan  pengujian  sistem,  serta  analisis hasil pengujian, 5) Penulisan laporan hasil penelitian.

## Gambar 1. Tahapan Penelitian
Gambar 1 merupakan Tahapan penelitian yang dapat dijelaskan sebagai berikut: 1) Tahap pertama adalah analisis kebutuhan dan pengumpulan data. Analisis kebutuhan dilakukan melalui observasi mengenai driver yang diperlukan, versi dari browser , dan versi framework yang  digunakan.  2)  Tahap  kedua  adalah  Design  Sistem  perancangan database meliputi  tabel-tabel  yang  digunakan  dalam  menyimpan  data  serta  penentuan hubungan  relasinya  dan  perancangan  antarmuka  aplikasi  yang  dibuat.  3)  Tahap  ketiga adalah implementasi program, yaitu merancang aplikasi dan menerapkan syntax-syntax sesuai  dengan  kebutuhan  sistem  berdasarkan  perancangan  yang  sudah  dilakukan. Bahasa  pemrograman  yang  dipakai  adalah Phyton dan PHP 4)  Tahap  keempat  adalah pengujian sistem. 5) Tahap kelima adalah penulisan laporan hasil penelitian. Tahap ini dilakukan dokumentasi proses dari tahap awal sampai tahap akhir dalam bentuk tulisan ilmiah.
Jatisi                             ISSN 2407-4322 Vol. 9, No. 4, Desember 2022, Hal. 3426-3435 E- ISSN 2503-2933 3429

## 2.1   Kajian Pustaka

## 2.1.1 Framework
Framework merupakan  sebuah software yang  memudahkan  para  programmer untuk membuat sebuah aplikasi web yang di dalam nya memiliki berbagai fungsi seperti plugin,  dan  konsep  untuk  membentuk  suatu  sistem  tertentu  agar  tersusun  dan tersetruktur  dengan  rapi.  Dengan  menggunakan framework bukan  berarti  akanterbebas dengan  pengkodean.  Sebagai  seorang  pengguna framework diharuskan  menggunakan fungsi  dan variabel yang berada dalam sebuah framework yang sedang digunakan [7].

## 2.1.2 MySQL
MySQL adalah database yang berfungsi dan bekerja pada sistem Linux dan Unix . Seiring waktu berjalan serta peminat yang semakin banyak dalam menggunakan database, MySQL kemudian melakukan rilis versi yang membuat MySQL dapat diinstal pada hampir semua platform . MySQL dapat didownload dan dipakai tanpa perlu membayar. Meskipun kita ingin menjual sebuah produk dengan menyertakan software MySQL , kita tidak akan melanggar hak cipta [8].

## 2.1.3 Phyton
Python adalah bahasa pemrograman yang dinamis karena mendukung pemrograman berbasis objek. Python memiliki beberapa lisensi yang berbeda dari bnyak versi yang ada. Pada prinsipnya Python dapat dimiliki dan dapat kita gunakan dengan bebas, bahkan sebagai kepentingan komersial [9].

## 2.1.4 Laravel
Laravel adalah salah satu framework PHP yang digunakan untuk membangun aplikasi web. Framework ini digunakan oleh banyak Web Developer karena fungsi fitur- fitur nya sangat banyak, kinerja menjadi lebih efektif. Framework ini menggunakan struktur Model View Controller (MVC). MVC adalah sebuah metode aplikasi dengan memisahkan data dari tampilan berdasarkan komponen – komponen aplikasi, contohnya: controller, view, model, database, migration [10] .

## 2.1.5 Selenium
Selenium adalah satu satu bot yang dapat mengunjungi web secara otomatis. Selenium biasanya dipakai untuk web scriping dan aplikasi bot lainnya. Selenium menggunakan driver browser dalam menjalankan perintah untuk mengunjungi web, dengan menggunakan selenium pengguna dapat membuka browser tanpa menampilkan UI / dengan kata lain pengguna dapat menjalankan browser tanpa menggunakan tampilan dari browser tersebut [11].
3430 Jatisi ISSN 2407-4322 Vol. 9, No. 4, Destember 2022, Hal. 3426-3435 E-ISSN 2503-2933

## 3. HASIL DAN PEMBAHASAN

## 3.1   Use Case Diagram
Penelitian  dilakukan  dengan  membuat Use  Case  diagram yang  disajikan  pada gambar 2, berikut:

## Gambar 2. Usecase Diagram dari Aplikasi
Pada Gambar 2 menunjukan penggambaran usecase diagram untuk pengguna sistem yang telah dibangun. Aktor sebagai pengguna dapat menambakan data, delete data dan edit data serta melakukan sinkron data pada aplikasi.

## 3.2   Tampilan Web
Tampilan awal hasil dari pembuatan disajikan dalam gambar 3,berikut:
Gambar 3. Tampilan Web
Gambar  3  merupakan  halaman  utama  dari  sistem.  Halaman  utama  sistem memiliki  beberapa  fungsi  seperti  total marketplace yang  ada,  total user ,  total  product, dan notification.

## 3.3   Tampilan Menu Produk
Pada  tampilan  menu  produk,  akan  menampilkan  semua  hasil  product  dari  toko online yang user sudah syncronisasikan.
Jatisi                             ISSN 2407-4322 Vol. 9, No. 4, Desember 2022, Hal. 3426-3435 E- ISSN 2503-2933 3431
Gambar 4. Tampilan Menu Item Product List
Pada  Gambar  4  Product  dapat  muncul  ketika  berhasil  melakukan  sinkronisasi data  pada  toko  online,  Menu  Edit  untuk  mengedit  product  toko  online  anda  dan database,  Menu  delete  untuk  melakukan  delete  product  anda  dari  database  Aplikasi, Menu link untuk Menuju ke-url product anda yang berada pada marketplace.
Gambar 5. Tampilan Edit Item
Pada  Gambar  5.  Merupakan  tampilan  edit  item,  Terdapat  button Syncron from Marketplace digunakan  untuk  melakukan  sinkronisasi  product  dari marketplace agar database menjadi  sesuai  dengan marketplace .  Tombol Link untuk  berpindah  ke- url product  pada marketplace . Back untuk  kembali  ke  tampilan  sebelumnya,  tombol Edit digunakan ketika pengguna melakukan klik data yang berada dalam tampilan sehingga dapat  mengubah  detail  produk  pada  toko  online  anda  sesuai  dengan  yang  ada  di tampilan.

## 3.4   Kode Program
Beberapa contoh kode program dalam melakukan pengambilan data / scraping disajikan dalam kode program 1 dan kode program 2, berikut:
3432 Jatisi ISSN 2407-4322 Vol. 9, No. 4, Destember 2022, Hal. 3426-3435 E-ISSN 2503-2933

## Kode Program 1 Syncron from Marketplace
1. private function update(Request $request,$id){ 2. $items = Item::all();
3. $variants = Variant::all();
4. $accounts = MarketAccount::find($id);
5. $password=Crypt::decryptString($accounts->password);
6. $myObj=["action"  =>  "syncron_all","id"  =>  $id,  email"  =>  "$accounts- >email","password" => "$password",];
Fungction  berikut  merupakan  salah  satu  fungsi  untuk  melakukan  update  data setelah  mengirim  permintaan  Syncron  dengan  menekan  tombol  “button Syncron  from Marketplace”
Kode Program 2 kode program phyton Syncron data 1. class Shopee:
2. def SkuChildGet(data,search):
3. total_variants,product_id,data_detail,data_detail_fail = [],[],[],[]
4. driver.get("https://seller.shopee.co.id/portal/product/"+search)
5. driver.implicitly_wait(50)
6. sku_vars = driver.find_element(By.XPATH, sku_field)
7. sku_products = sku_vars.get_attribute('value')
8. price_field = "//div[@class='variation-model-table']/descendant-or- self::div[@class='flex'][2]/div/div[" + \sku_column_num+"]/child::div[2]/div[" + \sku_num + \"]/child::div[@class='table-cell'][2]/descendant::input" 9. stock_products = stock.get_attribute('value')}
Setelah script  phyton dalam  melakukan scraping dijalankan,  maka return kembaliannya  dikirim  berbentuk json ,  yang  nantinya  dapat  di  baca  oleh php untuk dimasukan kedalam database .

## 3.5   Pengujian Sistem
Metode  blackbox  digunakan  untuk  pengujian  aplikasi,  karena  blacknox  adalah pengujian  fungsionalitas  dan  tidak  perlu  memperhatikan  alur  eksekusi  dari  suatu program  program,  melainkan  apakah  program  dari  setiap  fungsi  di  aplikasi  berjalan sesuai / tidak. Pengujian aplikasi dapat ditunjukan pada Tabel 1.

## Tabel 1.  Hasil Pengujian Fungsionalitas Sistem
No Module yang Diuji Data Input / Kondisi Hasil yang Diharapkan Hasil Uji Status 1 Button Add Merchant Account Button di Klik Tidak ada Inputan Add berhasil Notification gagal Add Berhasil notification gagal Valid
Valid 2
Button
Syncron  from Marketplace
Button di klik
Button tidak di klik Keluar  hasil dan data masuk database sesuai nama Hasil tidak Keluar  hasil dan data masuk database sesuai nama Hasil tidak Valid
Valid
Jatisi                             ISSN 2407-4322 Vol. 9, No. 4, Desember 2022, Hal. 3426-3435 E- ISSN 2503-2933 3433
keluar keluar
3 Menu Items
Klick menu items
Menu  items  tidak  di klik Berpindah halaman  ke tampilan items Tidak berpindah halaman Berpindah halaman ke tampilan items
Tidak berpindah halaman Valid Valid 4 Button syncron Button di klik Button tidak di klik
Mengambil semua data items pada marketplace dan  disimpan dalam database Tidak ada data tersimpan Mengambil semua data items pada marketplace dan disimpan dalam database Tidak ada data tersimpan Valid Valid 5 Button edit
pada menu
Items List
Button di klik
Button tidak di klik Berpindah halaman  ke menu edit Item List Hasil tidak keluar Berpindah halaman ke menu edit Item List Hasil tidak keluar
Valid
Valid
Dari  pengujian  yang  dilakukan,  hasil  dari  sistem  berjalan  tanpa  adanya  masalah dan  dapat  sesuai  dengan  apa  yang  dibutuhkan  pengguna.  Sistem  ini  membuktikan bahwa  menggunakan  selenium  untuk  melakukan  scraping  data  dengan  phyton  dapat dilakukan serta data tersebut dapat diambil dan disimpan kedalam database.

## 4. KESIMPULAN
Berdasarkan  penelitian  dan  pengujian  yang  dilakukan,  maka  dapat  disimpulkan bahwa melakukan web scraping dengan phyton dan framework Laravel dapat dilakukan dengan  bantuan Selenium. Selain  itu,  Sistem  ini  dapat  mempermudah  user  dalam pengambilan data items dari marketplace secara cepat.
3434 Jatisi ISSN 2407-4322 Vol. 9, No. 4, Destember 2022, Hal. 3426-3435 E-ISSN 2503-2933

## 5. SARAN
Adapun  yang  diperlukan  sistem  yaitu  pengembangan  system  keamanan.  Selain  itu penamambahan dan pembaharuan fungsi dalam pengambilan data melalui marketplace yang lain.

## DAFTAR PUSTAKA
[1] R. Yustiani et al. , “Ilmiah Komputer dan Peran Marketplace Sebagai Alternatif Bisnis di Era Ilmiah Komputer dan,” Vol. 6, No. 2, 2017.
[2] N.  Wahyuni,  A.  I.  S.  M.  S.,  and  G.  Akbar, “Pengenalan  dan  Pemanfaatan Marketplace  E-commerce  untuk  Pelaku  UKM  Wilayah  Cilegon,” J.  Pengabdi. Din. , Vol. 1, No. 6, pp. 31–39, 2018.
[3] J.  Zhang,  M.  X.  Cai,  T.  Lu,  X.  H.  Sun,  and  J.  L.  Jia,  “ Lumbar  Spinal  Stenosis Treated  With  Polyetheretherketone  Pedicle  Screw  Fixation  Combined  With Interbody  Fusion:  A  Follow-Up  Assessment  Focusing  On  Bone  Fusion  Rate,” Chinese  J.  Tissue  Eng.  Res. ,  Vol.  20,  No.  12,  pp.  1684–1689,  2016,  doi: 10.3969/j.issn.2095-4344.2016.12.002.
[4] M.  Djufri, “Penerapan  Teknik  Web  Scraping  Untuk  Penggalian  Potensi  Pajak (Studi Kasus pada Online Market Place Tokopedia, Shopee dan Bukalapak),” J. BPPK  Badan Pendidik. dan Pelatih. Keuang. , Vol. 13, No. 2, pp. 65–75, 2020, doi: 10.48108/jurnalbppk.v13i2.636.
[5] D. D. Ayani, H. S. Pratiwi, and H. Muhardi, “Implementasi Web Scraping untuk Pengambilan Data pada Situs Marketplace,” Vol. 7, No. 4, pp. 257–262, 2019.
[6] D.  F.  Setiawan,  T.  Tristiyanto,  and  A.  Hijriani, “Aplikasi  Web  Scraping Deskripsi  Produk,” J.  Teknoinfo ,  Vol.  14,  No.  1,  p.  41,  2020,  doi: 10.33365/jti.v14i1.498.
[7] T. C. A.-S. Zulkhaidi, Yulianto, and Suswanto, “Implementasi Sistem Informasi Penjualan  Produk  Elektronik  Berbasis  Web  Dengan  Menggunakan  Laravel Framework,”  Bul.  Poltanesa ,  Vol.  20,  No.  2,  pp.  51–56,  2019,  doi: 10.51967/tanesa.v20i2.309.
[8] J.  F.  Rini  Sovia, “Membangun  Aplikasi  E-Library  Menggunakan  HTML,  PHP SCRIPT, dan MySQL DATABASE Rini Sovia dan Jimmy Febio,” Processor , Vol. 6, No. 2, pp. 38–54, 2011.
[9] K.  R.  Srinath,  “Python  – The  Fastest  Growing  Programming  Language,” Int. Res. J. Eng. Technol. , pp. 354–357, 2017.
Jatisi                             ISSN 2407-4322 Vol. 9, No. 4, Desember 2022, Hal. 3426-3435 E- ISSN 2503-2933 3435
[10]  I.  G.  Handika  and  A.  Purbasari, “Pemanfaatan  Framework  Laravel  Dalam Pembangunan Aplikasi E-Travel Berbasis Website,” Konf. Nas. Sist. Inf. STMIK Atma Luhur Pangkalpinang , pp. 1329–1334, 2018.
[11]  D.  A.  N.  Marketplace  and  D.  Teknik, “Implementasi  Web  Scraping  Untuk Mengumpulkan  Informasi  Produk  dari  Situs  E-Commerce,” Vol.  10,  No.  01, 2022.