Python Web Scraping Demografi Indonesia
2:41 PM
Sebagai seorang Data Engineer, Anda diminta untuk menggali informasi dari https://id.wikipedia.org/wiki/Demografi_Indonesia menggunakan bahasa pemrograman Python.
Buatlah suatu script Python untuk menyimpan tabel "Jumlah Penduduk menurut Provinsi" dari web tersebut dengan format CSV.
File CSV menggunakan format double-apostrophe quoting (") dan disimpan dengan nama "Indonesia_Demography_by_Province.csv"
Kolom yang perlu Anda ambil adalah sebagai berikut.
- Kode BPS
- Nama
- Ibu Kota
- Populasi
- Luas km
- Pulau
import requests
from bs4 import BeautifulSoup
import pandas as pd
URL = 'https://id.wikipedia.org/wiki/Demografi_Indonesia'
response = requests.get(URL)
soup = BeautifulSoup(response.text,'html.parser')
table = soup.find('table',{'class':'wikitable sortable'}).tbody
rows = table.find_all('tr')
columns = ['Kode BPS', 'Nama', 'Ibu Kota', 'Populasi', 'Luas', 'Pulau']
df = pd.DataFrame(columns=columns)
for i in range(1,len(rows)):
tds = rows[i].find_all('td')
values = [tds[0].text, tds[2].text, tds[4].text, tds[5].text.replace('\n',''.replace('\xa0','')), tds[6].text.replace('\n',''.replace('\xa0','')), tds[8].text.replace('\n',''.replace('\xa0',''))]
df = df.append(pd.Series(values, index=columns), ignore_index=True)
#print(df)
df.to_csv('G:\Indonesia_Demography_by_Province.csv', columns=columns,sep='"',quotechar='"',index=False)