Scrapping Halaman Web

Berikut ini cara melakukan web scrapping dengan Python

import requests
from bs4 import BeautifulSoup
import pandas as pd

url = "https://satudata.nganu.id/dataset/63/2021/data-masjid"

# Mengambil konten halaman menggunakan requests
response = requests.get(url)

if response.status_code == 200:
    # Membuat objek BeautifulSoup untuk melakukan parsing HTML
    soup = BeautifulSoup(response.text, 'html.parser')

    # Mengidentifikasi elemen HTML yang berisi data yang diinginkan
    # Misalnya, jika data terletak dalam elemen tabel <table>
    table = soup.find('table')

    # Membaca tabel HTML ke dalam DataFrame menggunakan pandas
    data = pd.read_html(str(table))[0]

    # Menampilkan DataFrame
    print(data)

else:
    print(f"Failed to retrieve the page. Status code: {response.status_code}")

Jika terdiri dari banyak halaman bisa menggunakan cara seperti ini, walaupun anda perlu melakukan penyesuaian

import requests
from bs4 import BeautifulSoup
import pandas as pd

def scrape_data(url):
    # List untuk menyimpan DataFrames dari setiap halaman
    all_dataframes = []

    while True:
        # Mengambil konten halaman menggunakan requests
        response = requests.get(url)

        if response.status_code == 200:
            # Membuat objek BeautifulSoup untuk melakukan parsing HTML
            soup = BeautifulSoup(response.text, 'html.parser')

            # Mengidentifikasi elemen HTML yang berisi data yang diinginkan
            # Misalnya, jika data terletak dalam elemen tabel <table>
            table = soup.find('table')

            # Membaca tabel HTML ke dalam DataFrame menggunakan pandas
            data = pd.read_html(str(table))[0]

            # Menambahkan DataFrame ke list
            all_dataframes.append(data)

            # Mencari URL halaman berikutnya (jika ada)
            next_page = soup.find('li', class_='page-item next')
            if next_page:
                # Mendapatkan URL dari atribut 'href'
                url = next_page.find('a')['href']
            else:
                # Keluar dari loop jika tidak ada halaman berikutnya
                break

        else:
            print(f"Failed to retrieve the page. Status code: {response.status_code}")
            break

    # Menggabungkan semua DataFrames menjadi satu
    result_df = pd.concat(all_dataframes, ignore_index=True)

    return result_df

# Gantilah 'https://satudata.nganu.id/dataset/63/2021/data-masjid' dengan URL yang sesuai
url_to_scrape = 'https://satudata.nganu.id/dataset/63/2021/data-masjid'
result_dataframe = scrape_data(url_to_scrape)

# Menampilkan DataFrame hasil
print(result_dataframe)
result_dataframe.to_csv('data-masjid.csv')

Jika kamu tidak bisa emnembusnya gunakan firewall ini https://www.blackbox.ai/