Tutorial Scrapy: Bagaimana Membuat Crawler Web Menggunakan Scrapy?



Dalam artikel Tutorial Scrapy ini, anda akan belajar membuat crawler web dengan pelbagai teknik pengekstrakan data dan cara untuk menyimpan data tersebut di dalam pangkalan data.

Pengikisan laman web adalah cara yang berkesan untuk mengumpulkan data dari laman web, ia telah menjadi alat yang berkesan dalam . Dengan pelbagai perpustakaan hadir untuk mengikis web seperti , kerja saintis data menjadi optimum. Scrapy adalah kerangka web yang kuat yang digunakan untuk mengekstrak, memproses dan menyimpan data. Kami akan belajar bagaimana kami dapat membuat crawler web dalam tutorial scrapy ini, berikut adalah topik yang dibincangkan dalam blog ini:

Apa itu Scrapy?

Scrapy adalah rangka kerja merangkak web sumber terbuka dan bebas yang ditulis dalam python. Ia pada asalnya dirancang untuk membuat persembahan , tetapi juga dapat digunakan untuk mengekstrak data menggunakan API. Ia dikendalikan oleh Scrapinghub ltd.





Scrapy adalah pakej lengkap untuk memuat turun laman web, memproses dan menyimpan data di .

Ia seperti sebuah pusat kuasa ketika mengikis laman web dengan pelbagai cara untuk mengikis laman web. Scrapy mengendalikan tugas yang lebih besar dengan mudah, mengikis beberapa halaman atau sekumpulan URL dalam masa kurang dari satu minit. Ia menggunakan twister yang berfungsi secara segerak untuk mencapai serentak.



Ini menyediakan kontrak labah-labah yang membolehkan kita membuat crawler generik dan juga dalam. Scrapy juga menyediakan saluran paip item untuk membuat fungsi dalam labah-labah yang dapat melakukan pelbagai operasi seperti menggantikan nilai dalam data dll.

seni bina scrapy-tutorial scrapy-edureka

Apa itu Web-Crawler?

Web-crawler adalah program yang mencari dokumen di web secara automatik. Mereka terutamanya diprogramkan untuk tindakan berulang untuk penyemakan imbas automatik.

Bagaimana ia berfungsi?



Perayap web agak serupa dengan pustakawan. Ia mencari maklumat di web, mengkategorikan maklumat dan kemudian mengindeks dan mengkatalogkan maklumat agar maklumat yang dirangkak diambil dan disimpan dengan sewajarnya.

Operasi yang akan dilakukan oleh crawler dibuat terlebih dahulu, kemudian crawler melakukan semua operasi tersebut secara automatik yang akan membuat indeks. Indeks ini dapat diakses oleh perisian output.

Mari kita lihat pelbagai aplikasi yang dapat digunakan oleh perayap web untuk:

  • Portal perbandingan harga mencari perincian produk tertentu untuk membuat perbandingan harga di platform yang berbeza menggunakan crawler web.

  • Perayap web memainkan peranan yang sangat penting dalam bidang perlombongan data untuk mendapatkan maklumat.

  • Alat analisis data menggunakan perayap web untuk mengira data untuk paparan halaman, pautan masuk dan keluar juga.

  • Perayap juga berfungsi ke pusat maklumat untuk mengumpulkan data seperti portal berita.

Bagaimana Memasang Scrapy?

Untuk memasang scrapy pada sistem anda, disyorkan untuk memasangnya pada virtualenv khusus. Pemasangan berfungsi sama seperti pakej lain di python, jika anda menggunakan conda persekitaran, gunakan arahan berikut untuk memasang scrapy:

conda install -c conda-forge scrapy

anda juga boleh menggunakan persekitaran pip untuk memasang scrapy,

pip pasang scrapy

Mungkin ada beberapa pergantungan kompilasi bergantung pada sistem operasi anda. Scrapy ditulis dalam python tulen dan mungkin bergantung pada beberapa paket python seperti:

  • lxml - Ia adalah penghurai XML dan HTML yang cekap.

  • bungkusan - Perpustakaan pengekstrakan HTML / XML yang ditulis di bahagian atas lxml

  • W3lib - Ini adalah pembantu pelbagai guna untuk menangani URL dan pengekodan laman web

  • berpintal - Rangka kerja rangkaian tidak segerak

  • kriptografi - Ia membantu dalam pelbagai keperluan keselamatan peringkat rangkaian

Memulakan Projek Pembersihan Pertama Anda

Untuk memulakan projek scrapy pertama anda, pergi ke direktori atau lokasi di mana anda ingin menyimpan fail anda dan jalankan perintah berikut

nama projek projek awal

Setelah anda melaksanakan perintah ini, anda akan mendapat direktori berikut yang dibuat di lokasi tersebut.

  • Nama Projek/

    • scrapy.cfg: ia menyebarkan fail konfigurasi

  • Nama Projek/

    • __init__.py: modul python projek

    • item.py: fail definisi item projek

    • middlewares.py: fail middlewares projek

    • pipelines.py: fail saluran paip projek

    • settings.py: fail tetapan projek

      apa itu acara javascript
  • labah-labah /

    • __init__.py: direktori di mana kemudian anda akan meletakkan labah-labah anda

Menjadikan Labah-labah Pertama Anda

Labah-labah adalah kelas yang kami tentukan dan penggunaan scrapy untuk mengumpulkan maklumat dari web. Anda mesti subclass scrapy. Labah-labah dan tentukan permintaan awal yang harus dibuat.

Anda menulis kod untuk labah-labah anda dalam fail python yang berasingan dan menyimpannya di direktori nama projek / labah-labah dalam projek anda.

petikan_spider.py

import 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 dalam url: hasil scrapy.Restest (url = url, callback = self.parse) def parse (self, response): page = response.url.split ('/') [- 2 ] nama fail = 'petikan-% s.html'% halaman dengan terbuka (nama fail, 'wb') sebagai f: f.write (Respons.body) self.log ('file disimpan% s'% nama fail)

Seperti yang anda lihat, kami telah menentukan pelbagai fungsi dalam labah-labah kami,

  • nama: Ia mengenal pasti labah-labah, harus unik sepanjang projek.

  • start_requests (): Mesti mengembalikan permintaan berulang yang mana labah-labah akan mula merangkak.

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

Mengekstrak Data

Sehingga kini labah-labah tidak mengekstrak data, ia hanya menyimpan keseluruhan fail HTML. Labah-labah scrapy biasanya menghasilkan banyak kamus yang mengandungi data yang diekstrak dari halaman. Kami menggunakan kata kunci hasil dalam python dalam panggilan balik untuk mengekstrak data.

import 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 petikan dalam respons.css ('div.quote'): hasil {'text': quote.css (span.text :: text '). get (),' author ': quote .css (small.author::text ') get (),' tags: quote.css (div.tags a.tag :: text '). getall ()}

Apabila anda menjalankan labah-labah ini, ia akan mengeluarkan data yang diekstrak dengan log.

Menyimpan Data

Cara termudah untuk menyimpan data yang diekstrak adalah dengan menggunakan eksport suapan, gunakan perintah berikut untuk menyimpan data anda.

sebut harga crawl crawl -o quotes.json

Perintah ini akan menghasilkan fail quotes.json yang mengandungi semua item yang dikikis, bersiri dalam JSON .

Ini membawa kita ke akhir artikel ini di mana kita telah belajar bagaimana kita dapat membuat web-crawler menggunakan scrapy di python untuk mengikis laman web dan mengekstrak data ke dalam fail JSON. Saya harap anda jelas dengan semua yang telah dikongsi dengan anda dalam tutorial ini.

Jika anda mendapati artikel ini mengenai 'Scrapy Tutorial' relevan, lihat syarikat pembelajaran dalam talian yang dipercayai dengan rangkaian lebih daripada 250,000 pelajar berpuas hati yang tersebar di seluruh dunia.

Kami di sini untuk membantu anda dalam setiap langkah dalam perjalanan anda dan menyediakan kurikulum yang dirancang untuk pelajar dan profesional yang ingin menjadi . Kursus ini dirancang untuk memberi anda permulaan dalam pengaturcaraan Python dan melatih anda untuk konsep Python teras dan maju bersama dengan pelbagai suka

Sekiranya anda menemui sebarang pertanyaan, jangan ragu untuk mengajukan semua soalan anda di bahagian komen 'Scrapy Tutorial' dan pasukan kami akan dengan senang hati menjawab.