Cara Scraping Dengan Beautifulsoup4 2022

Avatar
di tulis oleh g3xx | waktu Baca: 2 Menit

setelah sekian lama dan hampir lupa kalo punya web kecil untuk catatan. untuk kesempatan kali ini saya mau share lagi cara Scraping biar makin jago srap nya dan di jamin pasti bisa !!!!!. untuk yang masih belum bisa dan gagal ngambil data dari element. saya kasih sedikit perbedaan. yang kalian harus tau adalah site Dynamic dan site Static. google ya buat perbedaan nya, kalo secara simple nya, Web yang ga pake Javascript buat manipulasi element ya bisa di sebut site Static dan sebalik nya.

Sesuai dengan judul, kita Scraping masih dengan Python dan modul Beautifulsoup4. lansung aja, kali ini saya akan kasih contoh Scraping site Static. oia, kali ini target saya https://stackoverflow.com/ . kamu siapin dulu data apa aja yang akan kalian scrap dan link halaman nya. saya akan ambil data

argv itu maksud nya bisa di ganti dan di jadikan query selain python dengan hasil halaman yang sama tanpa harus mencari dan merubah element baru. dan Container itu element untuk memfilter element yang kita butuhkan.

setelah itu sekarang kita cari nama / class element itu di link yang kita targetkan. saya kasih gambar agar mudah di pahamin.

cara scraping dengan beautifulsoup

  • Warna Orange itu Container Parent Element Class (".mln24")
  • Warna Kuning itu Title dan Url saya pilih tag (“h3”)
  • Warna Ungu itu Class Tags (".post-tag")
  • Warna Hijau class (".gravatar-wrapper-32") dan (".user-details")

Oke, gimana kalo nama class nya ganti nama setiap reload ??? easyy boyss, tinggal pilih element tag nya aja dan main index setiap element nya. tapi saya belum pernah nemuin yang class name ganti ganti, hahaha. langsung aja ya code nya di copy di text editor favorite kalian. buat yang belum install Python dan Beauitulshop bisa cek di halaman ini

 1#!/usr/bin/python
 2import requests, json
 3from bs4 import BeautifulSoup
 4
 5stackoverflow = "https://stackoverflow.com/questions/tagged/python" #target
 6res = requests.get(stackoverflow) # otw target
 7soup = BeautifulSoup(res.content, "html.parser") # ambil respon
 8
 9index = soup.select(".mln24")
10# karena index hasil respone nya array maka kita butuh loop
11data  = []
12for el in index:
13    tags  = []
14    judul = el.select_one("h3").text
15    url   = el.select_one("h3").select_one("a").get("href")
16    img   = el.select_one(".gravatar-wrapper-32").select_one("img").get("src")
17    nama  = el.select_one(".user-details").select_one("a").text
18
19    for tag in el.select(".post-tag"):
20        tags.append(tag.text)
21    #agar rapih result nya kita bikin JSON
22    tmp = {
23        "judul"  : judul,
24        "link"   : url
25        "nama"   : nama,
26        "img"    : img,
27        "tags"   : tags,
28    }
29    #tambahkan result ke array
30    data.append(tmp)
31# convert array to json  
32json_cool = json.dumps(data) 
33print(json_cool)

Penjelasan

Nahloh, sekarang kenapa ada select kepana ga find dan find_all, UPDATE GAN !!! biar makin simple macam kek jekueri, itu feature terbaru dari Bs4 4.7.1 ya walapun sama aja, cuma lebih easy kalo menurut saya. INGET

  • select itu hasil Object nya array, harus di loop atau bisa di via index
  • select_one sama seperti nama nya, hasil 1 Object jadi bisa langsung di ambil Text atau element Tag value nya

nah langsung coba kalian jalanin, kalo error berarti sudah update nama class nya. hahha namun saat saya nulis ini, work 100%

cara scraping dengan beautifulsoup

Avatar hanya seseorang yang suka belajar ngoding sambil bermain

tulisan terkait

Cara Scraping Dengan Beautifulsoup4 2022
Cara Scraping Dengan Beautifulsoup4 2022
>
comments powered by Disqus