CAPSOLVER
Blog
Web Scraping dengan Botright dan Python di 2024

Web Scraping dengan Botright dan Python di 2025

Logo of CapSolver

Ethan Collins

Pattern Recognition Specialist

14-Nov-2024

Anda mungkin bertanya-tanya bagaimana cara menyelesaikan captcha menggunakan BotRight, bagaimana cara menggunakannya untuk membuat scraper sederhana atau bahkan lebih baik, scraper canggih!
Nah, ini tutorialnya!

Pendahuluan ke Botright

Pendahuluan ke BotRight

BotRight adalah pustaka Python tingkat lanjut untuk otomatisasi web, yang dirancang khusus untuk menavigasi kompleksitas yang meningkat dari sistem deteksi bot di seluruh situs web. Tidak seperti alat otomatisasi dasar, BotRight melampaui interaksi sederhana dengan menyediakan kontrol yang bernuansa yang membuat penjelajahan otomatis tampak sangat seperti manusia. Penekanan pada simulasi perilaku manusia ini sangat penting untuk mengakses situs web yang biasanya akan memblokir atau membatasi bot.

Dibangun di atas Selenium WebDriver, BotRight menawarkan API tingkat tinggi yang mengabstraksi interaksi browser yang kompleks menjadi perintah sederhana, memungkinkan pengguna pemula dan berpengalaman untuk mengembangkan scraper canggih dan skrip otomatisasi tanpa perlu mengelola perintah browser tingkat rendah. Ini menjadikannya pilihan yang sangat baik untuk proyek mulai dari pengumpulan data sederhana hingga tugas web multi-langkah yang kompleks yang membutuhkan ketahanan terhadap algoritma deteksi bot.

Mengapa Memilih BotRight?

BotRight menyediakan beberapa fitur yang membuatnya menonjol di lanskap otomatisasi:

  1. Interaksi Seperti Manusia: Desain BotRight berpusat pada simulasi tindakan pengguna nyata, seperti gerakan mouse yang halus, pola pengetikan alami, dan penundaan waktu. Perilaku ini mengurangi risiko deteksi dan memberikan akses yang lebih andal ke konten yang biasanya dibatasi untuk pengguna asli.

  2. Ketahanan Status Browser: Dengan mendukung profil browser, BotRight memungkinkan Anda mempertahankan status sesi di seluruh beberapa run otomatisasi. Fitur ini sangat berguna untuk tugas yang memerlukan ketahanan masuk atau di mana cookie dan status cache tertentu harus dipertahankan.

  3. Kemudahan Penggunaan: Meskipun kemampuannya yang canggih, BotRight sangat ramah pengguna. API-nya dirancang untuk menyederhanakan tugas otomatisasi yang kompleks, menghilangkan banyak overhead teknis yang biasanya datang dengan pengaturan Selenium. Pemula dapat memulai dengan cepat, sementara para ahli dapat memanfaatkan fleksibilitas BotRight untuk membangun solusi yang sangat disesuaikan.

  4. Skalabilitas untuk Alur Kerja yang Kompleks: BotRight beradaptasi dengan baik untuk tugas yang lebih canggih, termasuk menangani situs yang didukung AJAX, mengelola ekstraksi data yang dipaginasi, menyelesaikan CAPTCHA, dan banyak lagi. Dipasangkan dengan pemecah CAPTCHA seperti CapSolver, BotRight dapat menangani alur kerja yang memerlukan pemblokiran CAPTCHA, memungkinkan Anda mengotomatiskan bahkan situs web yang dijaga ketat.

  5. Ekstensi dan Plugin Terintegrasi: BotRight mendukung inklusi berbagai ekstensi dan plugin untuk meningkatkan kemampuan otomatisasi. Misalnya, menggunakan alat seperti CapSolver di dalam BotRight membantu mengelola tantangan CAPTCHA, membuka lebih banyak situs web untuk scraping atau otomatisasi.


Menyiapkan Botright

Sebelum kita mulai, pastikan Anda telah menginstal Python 3.7 atau lebih tinggi di sistem Anda. Ikuti langkah-langkah ini untuk menyiapkan Botright:

  1. Instal Botright:

    bash Copy
    pip install botright
  2. Instal Manajer WebDriver:

    Botright bergantung pada paket webdriver_manager untuk mengelola driver browser.

    bash Copy
    pip install webdriver-manager
  3. Verifikasi Instalasi:

    Buat file Python baru dan impor Botright untuk memastikan bahwa itu terinstal dengan benar.

    python Copy
    from botright import Botright

    Jika tidak ada kesalahan yang terjadi, Botright terinstal dengan benar.


Membuat Scraper Dasar

Mari kita buat skrip sederhana untuk mengikis data dari quotes.toscrape.com menggunakan Botright.

Mengikis Kutipan

Skrip: scrape_quotes.py

python Copy
from botright import Botright

def scrape_quotes():
    with Botright() as bot:
        bot.get("https://quotes.toscrape.com/")
        quotes = bot.find_elements_by_css_selector("div.quote")
        for quote in quotes:
            text = quote.find_element_by_css_selector("span.text").text
            author = quote.find_element_by_css_selector("small.author").text
            print(f"\"{text}\" - {author}")

if __name__ == "__main__":
    scrape_quotes()

Jalankan skrip:

bash Copy
python scrape_quotes.py

Output:

Copy
“The world as we have created it is a process of our thinking. It cannot be changed without changing our thinking.” - Albert Einstein
...

Penjelasan:

  • Kami menggunakan Botright sebagai manajer konteks untuk memastikan pengaturan dan pembongkaran yang tepat.
  • Kami menavigasi ke situs web menggunakan bot.get().
  • Kami menemukan semua elemen kutipan dan mengekstrak teks dan penulisnya.

Menangani Paginasi

Skrip: scrape_quotes_pagination.py

python Copy
from botright import Botright

def scrape_all_quotes():
    with Botright() as bot:
        bot.get("https://quotes.toscrape.com/")
        while True:
            quotes = bot.find_elements_by_css_selector("div.quote")
            for quote in quotes:
                text = quote.find_element_by_css_selector("span.text").text
                author = quote.find_element_by_css_selector("small.author").text
                print(f"\"{text}\" - {author}")

            # Periksa apakah ada halaman berikutnya
            next_button = bot.find_elements_by_css_selector('li.next > a')
            if next_button:
                next_button[0].click()
            else:
                break

if __name__ == "__main__":
    scrape_all_quotes()

Penjelasan:

  • Kami mengulang melalui halaman dengan memeriksa apakah tombol "Berikutnya" tersedia.
  • Kami menggunakan find_elements_by_css_selector untuk menemukan elemen.
  • Kami mengklik tombol "Berikutnya" untuk menavigasi ke halaman berikutnya.

Mengikis Konten Dinamis

Skrip: scrape_dynamic_content.py

python Copy
from botright import Botright
import time

def scrape_tags():
    with Botright() as bot:
        bot.get("https://quotes.toscrape.com/")
        # Klik pada tautan 'Top Ten tags' untuk memuat tag secara dinamis
        bot.click('a[href="/tag/"]')
        # Tunggu konten dinamis untuk dimuat
        time.sleep(2)
        tags = bot.find_elements_by_css_selector("span.tag-item > a")
        for tag in tags:
            tag_name = tag.text
            print(f"Tag: {tag_name}")

if __name__ == "__main__":
    scrape_tags()

Penjelasan:

  • Kami menavigasi ke halaman tag dengan mengklik tautannya.
  • Kami menunggu konten dinamis untuk dimuat menggunakan time.sleep().
  • Kami mengekstrak dan mencetak tagnya.

Mengirimkan Formulir dan Masuk

Skrip: scrape_with_login.py

python Copy
from botright import Botright

def login_and_scrape():
    with Botright() as bot:
        bot.get("https://quotes.toscrape.com/login")
        # Isi formulir masuk
        bot.type('input#username', 'testuser')
        bot.type('input#password', 'testpass')
        bot.click("input[type='submit']")

        # Verifikasi masuk dengan memeriksa tautan keluar
        if bot.find_elements_by_css_selector('a[href="/logout"]'):
            print("Logged in successfully!")

            # Sekarang kikis kutipannya
            bot.get("https://quotes.toscrape.com/")
            quotes = bot.find_elements_by_css_selector("div.quote")
            for quote in quotes:
                text = quote.find_element_by_css_selector("span.text").text
                author = quote.find_element_by_css_selector("small.author").text
                print(f"\"{text}\" - {author}")
        else:
            print("Login failed.")

if __name__ == "__main__":
    login_and_scrape()

Penjelasan:

  • Kami menavigasi ke halaman masuk dan mengisi kredensial.
  • Kami memverifikasi masuk dengan memeriksa keberadaan tautan keluar.
  • Kemudian kami melanjutkan untuk mengikis konten yang tersedia untuk pengguna yang masuk.

Catatan: Karena quotes.toscrape.com memungkinkan nama pengguna dan kata sandi apa pun untuk demonstrasi, kita dapat menggunakan kredensial dummy.


Mengintegrasikan CapSolver ke dalam Botright

Meskipun quotes.toscrape.com tidak memiliki CAPTCHA, banyak situs web dunia nyata memiliki. Untuk mempersiapkan kasus seperti itu, kami akan menunjukkan bagaimana mengintegrasikan CapSolver ke dalam skrip Botright kami menggunakan ekstensi browser CapSolver.

Mengunduh Ekstensi CapSolver

  1. Unduh Ekstensi:

    • Kunjungi halaman Rilis CapSolver GitHub.
    • Unduh versi terbaru, mis., capsolver-chrome-extension-v0.2.3.zip.
    • Ekstrak ke direktori di root proyek Anda, mis., ./capsolver_extension.

Mengonfigurasi Ekstensi CapSolver

  1. Temukan config.json:

    • Jalur: capsolver_extension/assets/config.json
  2. Edit config.json:

    json Copy
    {
      "apiKey": "YOUR_CAPSOLVER_API_KEY",
      "enabledForcaptcha": true,
      "captchaMode": "token",
      "enabledForRecaptchaV2": true,
      "reCaptchaV2Mode": "token",
      "solveInvisibleRecaptcha": true,
      "verbose": false
    }
    • Ganti "YOUR_CAPSOLVER_API_KEY" dengan kunci API CapSolver Anda yang sebenarnya.
    • Atur enabledForcaptcha dan/atau enabledForRecaptchaV2 ke true berdasarkan jenis CAPTCHA yang Anda harapkan.
    • Atur mode ke "token" untuk penyelesaian otomatis.

Memuat Ekstensi CapSolver di Botright

Untuk menggunakan ekstensi CapSolver di Botright, kita perlu mengonfigurasi browser untuk memuat ekstensi saat dimulai.

Catatan: Botright memungkinkan Anda untuk menyesuaikan opsi browser, termasuk menambahkan ekstensi.

Skrip yang Diubah:

python Copy
from botright import Botright
from selenium.webdriver.chrome.options import Options
import os

def create_bot_with_capsolver():
    # Jalur ke folder ekstensi CapSolver
    extension_path = os.path.abspath('capsolver_extension')

    # Konfigurasi opsi Chrome
    options = Options()
    options.add_argument(f"--load-extension={extension_path}")
    options.add_argument("--disable-gpu")
    options.add_argument("--no-sandbox")

    # Inisialisasi Botright dengan opsi khusus
    bot = Botright(options=options)
    return bot

Penjelasan:

  • Impor Options:
    • Dari selenium.webdriver.chrome.options, untuk mengatur opsi Chrome.
  • Konfigurasi Opsi Chrome:
    • Gunakan options.add_argument() untuk menambahkan ekstensi CapSolver.
  • Inisialisasi Botright dengan Opsi:
    • Lewatkan options ke Botright saat membuat instance.

Contoh Skrip dengan Integrasi CapSolver

Kami akan menunjukkan integrasi dengan menavigasi ke situs dengan reCAPTCHA, seperti demo reCAPTCHA Google.

Skrip: scrape_with_capsolver_extension.py

python Copy
from botright import Botright
from selenium.webdriver.chrome.options import Options
import os
import time

def solve_captcha_and_scrape():
    # Jalur ke folder ekstensi CapSolver
    extension_path = os.path.abspath('capsolver_extension')

    # Konfigurasi opsi Chrome
    options = Options()
    options.add_argument(f"--load-extension={extension_path}")
    options.add_argument("--disable-gpu")
    options.add_argument("--no-sandbox")

    # Inisialisasi Botright dengan opsi khusus
    with Botright(options=options) as bot:
        bot.get("https://www.google.com/recaptcha/api2/demo")

        # Tunggu CAPTCHA untuk diselesaikan oleh CapSolver
        print("Waiting for CAPTCHA to be solved...")
        # Sesuaikan waktu tidur berdasarkan waktu penyelesaian rata-rata
        time.sleep(15)

        # Verifikasi apakah CAPTCHA diselesaikan dengan memeriksa konten halaman
        if "Verification Success" in bot.page_source:
            print("CAPTCHA solved successfully!")
        else:
            print("CAPTCHA not solved yet or failed.")

if __name__ == "__main__":
    solve_captcha_and_scrape()

Penjelasan:

  • Atur Opsi Chrome:
    • Sertakan ekstensi CapSolver dalam sesi browser.
  • Inisialisasi Botright dengan Opsi:
    • Lewatkan options saat membuat instance Botright.
  • Navigasi ke Situs Target:
    • Gunakan bot.get() untuk menavigasi ke situs dengan reCAPTCHA.
  • Tunggu CAPTCHA untuk Diselesaikan:
    • Ekstensi CapSolver secara otomatis akan menyelesaikan CAPTCHA.
    • Gunakan time.sleep() untuk menunggu; sesuaikan waktu sesuai kebutuhan.
  • Verifikasi Solusi CAPTCHA:
    • Periksa konten halaman untuk mengonfirmasi apakah CAPTCHA telah diselesaikan.

Catatan Penting:

  • Jalur Ekstensi:
    • Pastikan extension_path dengan benar menunjukkan ke folder ekstensi CapSolver Anda.
  • Waktu Menunggu:
    • Waktu penyelesaian mungkin berbeda; sesuaikan time.sleep() sesuai kebutuhan.
  • Manajemen Driver:
    • Botright mengelola WebDriver secara internal; meneruskan options menyesuaikan driver.
  • Kepatuhan:
    • Pastikan bahwa Anda mematuhi persyaratan layanan situs web yang Anda kikis.

Menjalankan Skrip:

bash Copy
python scrape_with_capsolver_extension.py

Kode Bonus

Klaim Kode Bonus Anda untuk solusi captcha teratas di CapSolver: scrape. Setelah menukarkannya, Anda akan mendapatkan bonus tambahan 5% setelah setiap pengisian ulang, tanpa batas.

Kesimpulan

Dengan mengintegrasikan CapSolver dengan Botright menggunakan ekstensi browser CapSolver, Anda dapat mengotomatiskan penyelesaian CAPTCHA dalam proyek scraping web Anda. Ini memastikan ekstraksi data yang tidak terputus, bahkan dari situs yang dilindungi oleh CAPTCHA.

Poin Penting:

  • Botright menyederhanakan otomatisasi web dengan interaksi seperti manusia.
  • Ekstensi browser CapSolver dapat diintegrasikan ke dalam skrip Botright.
  • Konfigurasi ekstensi dan opsi browser yang tepat sangat penting.

Pernyataan Kepatuhan: Informasi yang diberikan di blog ini hanya untuk tujuan informasi. CapSolver berkomitmen untuk mematuhi semua hukum dan peraturan yang berlaku. Penggunaan jaringan CapSolver untuk kegiatan ilegal, penipuan, atau penyalahgunaan sangat dilarang dan akan diselidiki. Solusi penyelesaian captcha kami meningkatkan pengalaman pengguna sambil memastikan kepatuhan 100% dalam membantu menyelesaikan kesulitan captcha selama pengambilan data publik. Kami mendorong penggunaan layanan kami secara bertanggung jawab. Untuk informasi lebih lanjut, silakan kunjungi Syarat Layanan dan Kebijakan Privasi.

Lebih lanjut

Kesalahan Cloudflare 1006, 1007, 1008
Solusi Penyelesaian Error Cloudflare 1006, 1007, 1008 | Cara Mengatasi

Kesulitan dengan kesalahan Cloudflare 1006, 1007, atau 1008? Pelajari solusi praktis untuk menyelesaikan penolakan akses ini dan tingkatkan pengalaman crawling web Anda.

Cloudflare
Logo of CapSolver

Emma Foster

05-Dec-2025

AI-LLM: Solusi Masa Depan untuk Pengendalian Risiko Pengenalan Gambar dan Penyelesaian CAPTCHA
AI-LLM: Solusi Masa Depan untuk Pengendalian Risiko Pengenalan Gambar dan Penyelesaian CAPTCHA

Penjelajahan mendalam tentang bagaimana Model Bahasa Besar (MB) mengubah pemecahan CAPTCHA grafis, menggabungkan penalaran zero-shot dengan presisi CNN untuk pengendalian risiko modern.

Logo of CapSolver

Lucas Mitchell

05-Dec-2025

Cara Mengatasi Captchas Saat Scrapping Web dengan Scrapling dan CapSolver
Cara Menyelesaikan Captchas Ketika Web Scraping dengan Scrapling dan CapSolver

Scrapling + CapSolver memungkinkan pengambilan data otomatis dengan ReCaptcha v2/v3 dan Cloudflare Turnstile bypass.

web scraping
Logo of CapSolver

Adélia Cruz

05-Dec-2025

Ubah User-Agent di Selenium
Ubah User-Agent di Selenium | Langkah-langkah & Praktik Terbaik

Mengganti User Agent di Selenium adalah langkah penting untuk banyak tugas pengambilan data web. Ini membantu menyamarkan skrip otomasi sebagai browser biasa...

The other captcha
Logo of CapSolver

Aloísio Vítor

05-Dec-2025

Cara Mengidentifikasi Apakah `action` Diperlukan untuk Menyelesaikan Cloudflare Turnstile Menggunakan Ekstensi CapSolver
Cara mengidentifikasi apakah `action` diperlukan untuk mengatasi Cloudflare Turnstile menggunakan ekstensi CapSolver

Pelajari cara mengidentifikasi tindakan untuk penyelesaian CAPTCHA yang efektif Cloudflare Turnstile. Ikuti panduan langkah demi langkah kami dalam menggunakan alat dan teknik Capsolver.

Cloudflare
Logo of CapSolver

Anh Tuan

05-Dec-2025

9proxy
Temukan Kekuatan 9Proxy: Ulasan Komprehensif

Dalam artikel ini, kami akan menunjukkan apa itu 9proxy dan layanan yang mereka tawarkan.

Partners
Logo of CapSolver

Rajinder Singh

04-Dec-2025