Jika Anda mencoba merayapi situs web hanya untuk diblokir berulang kali, kemungkinan besar Anda menemukan sistem perlindungan bot seperti Fastly. Fastly adalah jaringan pengiriman konten (CDN) yang digunakan banyak situs web tidak hanya untuk kecepatan tetapi juga untuk mencegah bot yang tidak diinginkan. Hal ini dapat menjadi kendala besar bagi web scraper seperti Anda - terutama bila metode scraping tradisional tidak berhasil.
Dalam panduan ini saya akan menunjukkan kepada Anda:
- Beginilah cara kerja pengelola bot Fastly
- Teknik Teratas untuk Menghindari Tantangan Fastly
- Cara melewati perlindungan bot Fastly menggunakan Python dan ScraperAPI
Baik Anda menelusuri artikel, daftar produk, atau data lainnya, panduan langkah demi langkah ini akan membantu Anda mengakses konten yang dilindungi dengan cepat tanpa menemui hambatan.
Kedengarannya bagus? Mari kita mulai!
Daftar Isi
Seberapa cepat web scraper diblokir
Inilah cara kerja pertahanan Fastly untuk memblokir pencakar seperti milik Anda:
1. Deteksi bot tingkat lanjut
Dengan cepat menggunakan klasifikasi bot canggih untuk mengidentifikasi pencakar. Ini melampaui pemeriksaan dasar seperti agen pengguna dan melihat:
- Pola lalu lintas: Mendeteksi dengan cepat perilaku lalu lintas yang tidak biasa, misalnya. B. mengirimkan permintaan terlalu cepat atau berulang kali mengakses endpoint tertentu. Pola-pola ini khas dari bot dan menonjol dalam sistem Fastly.
- Sidik jari perangkat: Mengumpulkan informasi mendetail dengan cepat tentang perangkat dan browser Anda, termasuk plugin, resolusi layar, dan pengaturan bahasa. Jika scraper Anda tidak meniru sidik jari pengguna sebenarnya atau menampilkan data yang tidak konsisten, kemungkinan besar scraper tersebut akan ditandai.
- Reputasi kekayaan intelektual: Nilai dengan cepat reputasi alamat IP yang digunakan scraper Anda. Jika alamat IP Anda diketahui karena aktivitas bot atau merupakan bagian dari jaringan proxy, Fastly dapat segera memblokirnya. Ini benar proxy yang berputar penting jika Fastly ingin dilewati.
2. Pemblokiran pengikis multi-lapis
Untuk mencegah pencakar mengakses konten yang dilindungi, Fastly menggunakan kombinasi pertahanan aktif dan pasif:
- Tantangan aktif (JavaScript dan CAPTCHA): Fastly dapat memaksa scraper Anda untuk memecahkan tantangan JavaScript atau CAPTCHA untuk membuktikan bahwa mereka adalah manusia. Scraper yang tidak dapat menjalankan JavaScript atau menangani CAPTCHA akan diblokir.
- Analisis perilaku pasif: Bahkan tanpa tantangan, Fastly secara diam-diam memantau perilaku pengunjung, seperti pergerakan mouse dan pola gulir. Scraper cenderung berinteraksi dengan situs web dengan cara yang dapat diprediksi atau mekanis, sehingga mudah dideteksi. Jika perilaku bot Anda tidak sesuai dengan harapan pengguna sebenarnya, bot akan ditandai sebagai mencurigakan.
- Pembatasan tarif dan pemblokiran IP: Menerapkan pembatasan tarif dengan cepat untuk mencegah permintaan berlebihan dari satu sumber. Jika scraper Anda melebihi batas ini, scraper Anda akan terhenti. Fastly juga menyimpan daftar alamat IP berbahaya yang diketahui. Jika IP scraper Anda dikaitkan dengan perilaku mencurigakan, IP scraper Anda dapat segera diblokir.
3. Deteksi dan pemblokiran scraper waktu nyata
Sistem manajemen bot Fastly memberikan wawasan waktu nyata tentang aktivitas pengikisan. Pemilik situs web dapat memantau dan menganalisis lalu lintas melalui dasbor intuitif yang menunjukkan tren perilaku scraper. Hal ini memungkinkan mereka dengan cepat menyesuaikan pengaturan keamanan untuk memblokir scraper secara lebih efektif dengan:
- Buat aturan khusus: Pemilik situs web dapat membuat aturan khusus untuk memblokir pola perilaku, IP, atau bahkan wilayah geografis tertentu yang umumnya dikaitkan dengan bot. Pengaturan yang dapat disesuaikan ini memberi pengguna Fastly kendali penuh atas bagaimana scraper diblokir.
- Daftar hitam dan daftar putih: Fastly memungkinkan Anda membuat daftar hitam dan daftar putih terperinci. Pemilik situs web dapat memutuskan dengan tepat lalu lintas apa yang akan diblokir atau diizinkan, dan menyesuaikan pertahanan mereka untuk mencegah pengikis masuk sekaligus membiarkan pengguna yang sah lewat.
Dengan metode deteksi canggih dan strategi pemblokiran ini, Fastly dirancang untuk menghentikan para pengikis di jalurnya. Meskipun perlindungan Fastly sangat kuat, namun bukannya tidak ada duanya.
Di bagian selanjutnya, saya akan menunjukkan cara menggunakan Python dan ScraperAPI untuk melewati pertahanan ini dan mengakses konten yang dilindungi.
Solusi cepat dengan ScraperAPI
ScraperAPI menyederhanakan bypass Fastly dengan mengelola aspek tersulit dari web scraping untuk Anda, seperti: B. merotasi proxy, penanganan header dan cookie, dan rendering JavaScript. Hal ini memungkinkan Anda untuk fokus mengumpulkan konten yang Anda perlukan tanpa khawatir diblokir.
Sekarang mari selami cara kerja ScraperAPI dan telusuri skrip Python yang menghapus berita utama teratas Le Monde.
Berikut kode yang akan Anda gunakan:
import requests
from bs4 import BeautifulSoup
API_KEY = "YOUR_SCRAPER_API_KEY"
URL = "https://www.lemonde.fr/"
params = {
'api_key': API_KEY,
'url': URL,
'render': 'true' # Enable JavaScript rendering to bypass Fastly's challenges
}
response = requests.get("http://api.scraperapi.com", params=params)
if response.status_code == 200:
print("Successfully bypassed Fastly!")
soup = BeautifulSoup(response.text, 'html.parser')
# Extract top articles from the page
top_articles = soup.find_all("li", class_="top-article") # Extract top articles
for article in top_articles:
print({"headline": article.find("p").text, "link": article.find("a").get("href")})
else:
print(f"Failed to bypass Fastly. Status code: {response.status_code}")
Memecah kode:
- Siapkan ScraperAPI:
- Pengganti
"YOUR_SCRAPER_API_KEY"
dengan kunci ScraperAPI Anda yang sebenarnya - Anda perlu membuat akun ScraperAPI gratis untuk menguji cuplikan tersebut. Kunci ini memberi Anda akses ke fitur ScraperAPI, seperti: B. merotasi proxy dan rendering JavaScript. - URL tujuannya adalah Le Monde (https://www.lemonde.fr/), yang dilindungi oleh manajemen bot Fastly.
- Pengganti
- Aktifkan rendering JavaScript:
- Dengan cepat menggunakan tantangan JavaScript untuk mengidentifikasi bot. Oleh karena itu, mengaktifkan rendering JavaScript sangatlah penting. Itu
render="true"
Parameter ini memberitahu ScraperAPI untuk memproses JavaScript, membuat permintaan Anda terlihat lebih seperti lalu lintas manusia sebenarnya.
- Dengan cepat menggunakan tantangan JavaScript untuk mengidentifikasi bot. Oleh karena itu, mengaktifkan rendering JavaScript sangatlah penting. Itu
- Kirim permintaan:
- Skrip menggunakan
requests.get()
untuk mengirim permintaan ke ScraperAPI. ScraperAPI menangani semua tugas rumit di balik layar seperti rotasi proxy dan eksekusi JavaScript, memungkinkan Anda melewati pertahanan Fastly.
- Skrip menggunakan
- Periksa jawabannya:
- Jika kode statusnya adalah
200 OK
Ini berarti permintaan berhasil dan Anda melewati Fastly. Jika tidak, Anda mungkin menghadapi a403 Forbidden
atau503 Service Unavailable
yang menunjukkan bahwa permintaan tersebut diblokir. Dalam kasus seperti ini, coba sesuaikan strategi permintaan Anda (misalnya menonaktifkan rendering JS atau memperlambat laju permintaan). Jika masalah terus berlanjut, hubungi tim dukungan ScraperAPI.
- Jika kode statusnya adalah
- Ekstrak dan analisis konten:
- Setelah Anda berhasil melewati Fastly, gunakan BeautifulSoup untuk mengurai konten HTML. Dalam contoh ini, kami mengekstrak artikel teratas dari halaman tersebut. Skrip mencari
"top-article"
dan mengekstrak berita utama () dan tautan (
).
- Pada langkah terakhir, judul dan tautan terkait dicetak.
- Setelah Anda berhasil melewati Fastly, gunakan BeautifulSoup untuk mengurai konten HTML. Dalam contoh ini, kami mengekstrak artikel teratas dari halaman tersebut. Skrip mencari
Mengapa menggunakan ScraperAPI untuk Fastly?
ScraperAPI menyederhanakan bypass cepat dengan mengotomatiskan beberapa tugas utama yang memerlukan pengaturan rumit. Itu sebabnya ScraperAPI adalah solusi ampuh untuk menggores situs web yang dilindungi dengan cepat:
Rotasi IP yang cerdas
Fastly sering kali memblokir scraper berdasarkan reputasi alamat IP atau pembatasan kecepatan. ScraperAPI memecahkan masalah ini dengan merotasi IP secara otomatis dan menyediakan proxy baru yang berkualitas tinggi untuk setiap permintaan. Ini membantu scraper Anda meniru lalu lintas organik, sehingga secara signifikan mengurangi risiko diblokir oleh pertahanan berbasis IP Fastly.
Render JavaScript dengan kumpulan perintah render baru
Salah satu tantangan terbesar di Fastly adalah penggunaan deteksi bot berbasis JavaScript. Banyak scraper yang gagal pada tahap ini karena tidak dapat menjalankan JavaScript.
ScraperAPI sekarang menyertakan kumpulan perintah rendering baru yang mengotomatiskan perilaku seperti browser di servernya, memungkinkan scraper Anda dengan mudah melewati pemeriksaan JavaScript Fastly. Ini berarti Anda tidak perlu menjalankan browser tanpa kepala seperti Puppeteer secara manual - ScraperAPI melakukan rendering untuk Anda, seolah-olah permintaan Anda berasal dari browser pengguna sebenarnya.
Manajemen header dan cookie
Pantau header dan cookie HTTP dengan cepat untuk mendeteksi bot. Jika scraper Anda tidak mengelolanya dengan benar, kemungkinan besar scraper tersebut akan ditandai.
ScraperAPI secara otomatis menetapkan dan mengelola header dan cookie untuk setiap permintaan, memastikan permintaan Anda terlihat seperti berasal dari sesi browser sebenarnya. Hal ini mengurangi kemungkinan Fastly mendeteksi scraper Anda berdasarkan header yang tidak konsisten atau cookie sesi yang hilang.
Kemudahan penggunaan dan fokus pada data
Dengan mengotomatiskan rotasi proxy, rendering JavaScript, dan manajemen sesi, ScraperAPI memungkinkan Anda fokus pada hal yang paling penting - mengumpulkan data yang Anda perlukan. Anda tidak perlu lagi khawatir tentang kerumitan deteksi bot, pemblokiran IP, atau eksekusi JavaScript. ScraperAPI mengatasi tantangan ini dan memungkinkan Anda mengekstrak konten dengan lebih efisien.
4 Teknik Melewati Perlindungan Bot dengan Cepat
Perlindungan bot Fastly dirancang untuk mencegah lalu lintas otomatis, namun dengan teknik yang tepat Anda masih dapat mengatasi pertahanannya. Berikut adalah strategi utama yang Anda perlukan:
1. Putar proxy untuk menghindari pemblokiran IP
Memantau dan memblokir alamat IP dengan cepat yang membuat terlalu banyak permintaan atau berperilaku mencurigakan. Untuk menyiasati hal ini, merotasi proxy sangatlah penting. Dengan beralih di antara alamat IP yang berbeda, Anda mempersulit Fastly mendeteksi scraper Anda.
Proksi perumahan sangat efektif karena meniru lalu lintas pengguna sebenarnya. Layanan seperti ScraperAPI menyediakan proxy bergilir yang mengotomatiskan proses ini dan membantu mendistribusikan permintaan ke berbagai IP.
Terkait:Cara menggunakan dan memutar proxy dengan Python.
2. Render JavaScript untuk menyelesaikan tantangan
Fastly sering kali menggunakan tantangan JavaScript untuk memverifikasi apakah pengunjung adalah manusia. Scraper tradisional kesulitan menghadapi tantangan ini, tetapi dengan menggunakan browser tanpa kepala seperti Puppeteer atau Playwright, Anda dapat menyimulasikan perilaku browser sebenarnya dan merender JavaScript.
Alternatifnya, layanan seperti ScraperAPI memiliki rendering JavaScript bawaan, memungkinkan Anda mengatasi tantangan ini secara otomatis tanpa harus menjalankan lingkungan browser penuh.
Terkait: Cara mengikis situs web dinamis besar menggunakan rendering JS.
3. Mensimulasikan perilaku manusia
Melacak dengan cepat perilaku pengguna di situs dan mencari tindakan yang menunjukkan apakah pengunjung adalah bot atau pengguna sebenarnya. Bot sering kali menunjukkan pola yang berulang - mengirimkan permintaan terlalu cepat atau mengunjungi halaman dalam urutan yang tidak wajar.
Untuk menghindari deteksi, simulasikan perilaku manusia dengan memberikan penundaan acak antara permintaan dan memvariasikan perilaku penjelajahan Anda. Alat seperti Puppeteer dan Selenium dapat membantu mensimulasikan tindakan realistis seperti menggulir, mengklik, dan gerakan mouse, sehingga membuat scraper Anda kurang dapat diprediksi.
Terkait: Selenium Pengikisan web 101.
Alternatifnya, Anda dapat menggunakan kumpulan perintah rendering ScraperAPI untuk memindahkan tugas-tugas intensif sumber daya ini ke server ScraperAPI alih-alih menjalankannya secara lokal.
4. Menangani cookie dan header
Dengan cepat menggunakan cookie untuk melacak sesi dan memonitor header HTTP dengan cermat untuk mengidentifikasi bot. Untuk membuat permintaan Anda tampak lebih sah, Anda perlu menangani cookie dan mengelola header Anda dengan benar.
Dengan menyimpan cookie di seluruh sesi dan mengatur header seperti Agen-Pengguna dan Perujuk agar sesuai dengan lalu lintas browser sebenarnya, scraper Anda menyatu dengan aktivitas pengguna biasa, sehingga mengurangi kemungkinan pemblokiran.
Terkait: Cara menggunakan header dan cookie khusus untuk web scraping.
Untuk melewati Fastly secara efektif, Anda harus merotasi proxy untuk menghindari larangan IP, merender JavaScript untuk mengatasi tantangan keamanan, menyimulasikan perilaku manusia agar tidak ditandai, dan mengelola cookie dan header untuk menjaga kelangsungan sesi. Dengan menggabungkan teknik-teknik ini, Anda dapat secara signifikan meningkatkan peluang Anda untuk berhasil menghapus situs web yang dilindungi dengan cepat tanpa diblokir.