Tutorial Scrapy: Cara Membuat Web-Crawler Menggunakan Scrapy?



Pada artikel Scrapy Tutorial kali ini anda akan belajar membuat web-crawler dengan berbagai teknik ekstraksi data dan cara-cara menyimpan data pada database.

Scraping web adalah cara yang efektif untuk mengumpulkan data dari halaman web, ini telah menjadi alat yang efektif di . Dengan berbagai perpustakaan hadir untuk web scraping seperti , pekerjaan data scientist menjadi optimal. Scrapy adalah kerangka kerja web yang kuat yang digunakan untuk mengekstraksi, memproses, dan menyimpan data. Kita akan belajar bagaimana kita bisa membuat web crawler dalam tutorial scrapy ini, berikut adalah topik-topik yang dibahas di blog ini:

Apa itu Scrapy?

Scrapy adalah kerangka kerja perayapan web gratis dan sumber terbuka yang ditulis dengan python. Ini pada awalnya dirancang untuk tampil , tetapi juga dapat digunakan untuk mengekstrak data menggunakan API. Itu dikelola oleh Scrapinghub ltd.





Scrapy adalah paket lengkap untuk mengunduh halaman web, memproses dan menyimpan data di .

Ini seperti pembangkit tenaga listrik ketika datang ke web scraping dengan berbagai cara untuk mengikis situs web. Scrapy menangani tugas-tugas yang lebih besar dengan mudah, mengorek beberapa halaman atau sekelompok URL dalam waktu kurang dari satu menit. Ini menggunakan twister yang bekerja secara tidak sinkron untuk mencapai konkurensi.



Ini memberikan kontrak laba-laba yang memungkinkan kita membuat crawler umum dan juga deep crawler. Scrapy juga menyediakan pipeline item untuk membuat fungsi dalam spider yang dapat melakukan berbagai operasi seperti mengganti nilai dalam data, dll.

scrapy arsitektur-scrapy tutorial-edureka

Apa itu Web-Crawler?

Penjelajah web adalah program yang mencari dokumen di web secara otomatis. Mereka terutama diprogram untuk tindakan berulang untuk penjelajahan otomatis.

Bagaimana itu bekerja?



Penjelajah web sangat mirip dengan pustakawan. Itu mencari informasi di web, mengkategorikan informasi dan kemudian mengindeks dan katalog informasi untuk informasi yang dirayapi untuk diambil dan disimpan sesuai.

Operasi yang akan dilakukan oleh crawler dibuat terlebih dahulu, kemudian crawler melakukan semua operasi tersebut secara otomatis yang akan membuat indeks. Indeks ini dapat diakses oleh perangkat lunak keluaran.

Mari kita lihat berbagai aplikasi yang dapat digunakan perayap web untuk:

  • Portal perbandingan harga mencari detail produk tertentu untuk membuat perbandingan harga di berbagai platform menggunakan perayap web.

  • Sebuah web-crawler memainkan peran yang sangat penting di bidang penambangan data untuk pengambilan informasi.

  • Alat analisis data menggunakan perayap web untuk menghitung data untuk tampilan halaman, tautan masuk dan keluar juga.

  • Crawler juga berfungsi sebagai hub informasi untuk mengumpulkan data seperti portal berita.

Bagaimana Cara Menginstal Scrapy?

Untuk menginstal scrapy di sistem Anda, disarankan untuk menginstalnya di virtualenv khusus. Penginstalan bekerja sangat mirip dengan paket lain di python, jika Anda menggunakan conda lingkungan, gunakan perintah berikut untuk menginstal scrapy:

Conda install -c conda-forge scrapy

Anda juga dapat menggunakan lingkungan pip untuk menginstal scrapy,

pip install scrapy

Mungkin ada beberapa dependensi kompilasi tergantung pada sistem operasi Anda. Scrapy ditulis dengan python murni dan mungkin bergantung pada beberapa paket python seperti:

  • lxml - Ini adalah parser XML dan HTML yang efisien.

  • parcel - Pustaka ekstraksi HTML / XML yang ditulis di atas pada lxml

  • W3lib - Ini adalah penolong multi-tujuan untuk menangani URL dan pengkodean halaman web

  • twisted - Kerangka kerja jaringan asinkron

  • kriptografi - Ini membantu dalam berbagai kebutuhan keamanan tingkat jaringan

Memulai Proyek Scrapy Pertama Anda

Untuk memulai proyek scrapy pertama Anda, buka direktori atau lokasi tempat Anda ingin menyimpan file dan jalankan perintah berikut

scrapy startproject projectname

Setelah Anda menjalankan perintah ini, Anda akan mendapatkan direktori berikut yang dibuat di lokasi itu.

  • Nama Proyek/

  • Nama Proyek/

    • __init__.py: modul python proyek

    • items.py: file definisi item proyek

    • middlewares.py: file middlewares proyek

    • pipelines.py: file pipelines proyek

    • settings.py: file pengaturan proyek

  • laba-laba /

    • __init__.py: direktori tempat Anda nantinya akan meletakkan spider

Membuat Laba-laba Pertama Anda

Laba-laba adalah kelas yang kami definisikan dan gunakan untuk mengumpulkan informasi dari web. Anda harus membuat subclass scrapy.Spider dan menentukan permintaan awal yang akan dibuat.

Anda menulis kode untuk spider Anda di file python terpisah dan menyimpannya di direktori projectname / spiders di proyek Anda.

quotes_spider.py

impor kelas scrapy QuotesSpider (scrapy.Spider): name = 'quotes' def start_request (self): urls = ['http://quotes.toscrape.com/page/1/', http://quotes.toscrape.com / page / 2 /,] untuk url di url: yield scrapy.Request (url = url, callback = self.parse) def parse (self, response): page = response.url.split ('/') [- 2 ] filename = 'quotes-% s.html'% halaman dengan buka (nama file, 'wb') sebagai f: f.write (response.body) self.log ('file yang disimpan% s'% nama file)

Seperti yang Anda lihat, kami telah mendefinisikan berbagai fungsi di laba-laba kami,

  • name: Mengidentifikasi laba-laba, harus unik sepanjang proyek.

  • start_requests (): Harus mengembalikan permintaan yang dapat diulang yang akan mulai dirayapi oleh spider.

  • parse (): Ini adalah metode yang akan dipanggil untuk menangani respons yang diunduh dengan setiap permintaan.

Mengekstrak Data

Sampai saat ini spider tidak mengekstrak data apapun, itu hanya menyimpan seluruh file HTML. Laba-laba scrapy biasanya menghasilkan banyak kamus yang berisi data yang diekstrak dari halaman. Kami menggunakan kata kunci hasil di python di callback untuk mengekstrak data.

impor kelas scrapy QuotesSpider (scrapy.Spider): name = 'quotes' start_urls = [http://quotes.toscrape.com/page/1/ ', http://quotes.toscrape.com/page/2/,] def parse (self, response): untuk kutipan di response.css ('div.quote'): yield {'text': quote.css (span.text :: text '). get (),' author ': quote .css (small.author::text ') get (),' tags ': quote.css (div.tags a.tag :: text'). getall ()}

Ketika Anda menjalankan spider ini, itu akan menampilkan data yang diekstrak dengan log.

Menyimpan Data

Cara termudah untuk menyimpan data yang diekstrak adalah dengan menggunakan ekspor feed, gunakan perintah berikut untuk menyimpan data Anda.

kutipan crawl scrapy -o quotes.json

Perintah ini akan menghasilkan file quotes.json yang berisi semua item yang dikikis, berseri dalam JSON .

Ini membawa kita ke akhir artikel ini di mana kita telah belajar bagaimana kita dapat membuat web-crawler menggunakan scrapy in python untuk mengikis sebuah situs web dan mengekstrak data ke dalam file JSON. Saya harap Anda jelas dengan semua yang telah dibagikan dengan Anda dalam tutorial ini.

Jika Anda merasa artikel tentang 'Tutorial Scrapy' ini relevan, lihat perusahaan pembelajaran online tepercaya dengan jaringan lebih dari 250.000 pelajar puas yang tersebar di seluruh dunia.

Kami di sini untuk membantu Anda dengan setiap langkah dalam perjalanan Anda dan menghasilkan kurikulum yang dirancang untuk siswa dan profesional yang ingin menjadi . Kursus ini dirancang untuk memberi Anda permulaan dalam pemrograman Python dan melatih Anda untuk konsep inti dan lanjutan Python bersama dengan berbagai Suka

Jika Anda menemukan pertanyaan, silakan ajukan semua pertanyaan Anda di bagian komentar 'Tutorial Scrapy' dan tim kami akan dengan senang hati menjawabnya.