Rumah >pembangunan bahagian belakang >Tutorial Python >Gunakan Crawlera dalam perangkak Scrapy untuk menyelesaikan masalah anti-merangkak

Gunakan Crawlera dalam perangkak Scrapy untuk menyelesaikan masalah anti-merangkak

WBOY
WBOYasal
2023-06-22 11:31:311594semak imbas

Dengan perkembangan pesat maklumat Internet, perangkak web telah menjadi alat yang sangat penting. Mereka boleh mendapatkan maklumat di web, merangkak data di tapak web dan merupakan bahagian penting dalam pengumpulan dan analisis data. Populariti teknologi anti-crawler meletakkan crawler berisiko diharamkan.

Apabila merangkak data, pemilik tapak web boleh menahan perangkak web dalam pelbagai cara, menyekat dan menghalang program perangkak, seperti menetapkan had kekerapan akses, kod pengesahan, penyekatan IP, dsb. Sudah tentu, strategi ini tidak 100% berkesan, dan ramai orang masih boleh menggunakan perkhidmatan proksi untuk memintas pertahanan ini. Baru-baru ini, alat anti perangkak baharu telah muncul dalam industri perangkak, dipanggil Crawlera Ia merupakan rangka kerja sumber terbuka untuk perangkak yang memfokuskan pada isu agensi.

Scrapy ialah rangka kerja perangkak web popular yang ditulis dalam Python. Scrapy adalah berdasarkan rangka kerja Twisted dan menggunakan pemprosesan tak segerak untuk meningkatkan kecekapan perangkak. Dalam perangkak Scrapy, menggunakan Crawlera sebagai pelayan proksi boleh menyelesaikan masalah anti-rangkak dengan baik. Artikel ini menerangkan cara menggunakan pelayan proksi Crawlera dalam Scrapy untuk merangkak data daripada tapak web tertentu.

Pertama, anda perlu membuat akaun Crawlera Anda boleh memohon akaun Crawlera di tapak web rasmi dan mendapatkan kunci API. Seterusnya, anda boleh mula menyediakan Scrapy.

Dalam fail settings.py, tambahkan coretan kod berikut untuk mendayakan perisian tengah Crawlera:

CRAWLERA_ENABLED = True
CRAWLERA_APIKEY = '<Your-API-KEY>'
DOWNLOADER_MIDDLEWARES = {
     'scrapy_crawlera.CrawleraMiddleware': 610
}

di mana fc4e4240406c22d2a7b9e05f16452368 harus digantikan dengan kunci API Crawlera anda. Beri perhatian kepada nilai middleware, kerana ini menentukan susunan di mana middleware dilaksanakan. Perisian tengah scrapy dilaksanakan dalam susunan berangka, jadi adalah penting untuk meletakkan Crawlera selepas perisian tengah yang lain.

Anda kini boleh menjalankan perangkak dan melihat sama ada Crawlera telah digunakan dengan jayanya. Arahan untuk memulakan perangkak ialah:

scrapy crawl <spider-name>

Jika ia berjaya dimulakan, anda boleh melihat output berikut dalam tetingkap terminal:

2017-04-11 10:26:29 [scrapy.utils.log] INFO: Using Crawlera proxy <http://proxy.crawlera.com:8010>: tor-exit-crawlera

Menggunakan pelayan proksi Crawlera, perangkak perlu dibayar untuk digunakan. Crawlera menyediakan dua kaedah pengebilan: Pengebilan Lebar Jalur dan Pengebilan Permintaan. Untuk kaedah pengebilan Lebar Jalur, penggunaan lebar jalur sesaat menentukan jumlah pembayaran. Kaedah pengebilan Permintaan adalah berdasarkan jumlah permintaan perangkak. Anda boleh memilih salah satu kaedah mengikut keperluan sebenar anda.

Perlu juga dinyatakan bahawa Crawlera juga dilengkapi dengan pengimbangan beban dan ciri ketersediaan tinggi. Ciri ini boleh membantu anda memanfaatkan berbilang pelayan proksi dan mengelakkan kegagalan pelayan proksi tunggal. Manfaat lain menggunakan pelayan proksi Crawlera ialah mereka mengambil kira permintaan/konkurensi tak segerak Scrapy.

Ringkasnya, Crawlera ialah salah satu faktor utama untuk Scrapy berjaya merangkak tapak web, dan sudah pasti ia merupakan penyelesaian anti perangkak yang sangat berkesan. Dengan menggunakan Crawlera, anda boleh merangkak data secara stabil sambil menjimatkan masa dan usaha.

Atas ialah kandungan terperinci Gunakan Crawlera dalam perangkak Scrapy untuk menyelesaikan masalah anti-merangkak. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn