Rumah pembangunan bahagian belakang Tutorial Python Scrapy ialah aplikasi mengikis data yang disertakan dengan templat perangkak

Scrapy ialah aplikasi mengikis data yang disertakan dengan templat perangkak

Jun 22, 2023 am 09:24 AM
reptilia Pengikisan data scrapy

Dengan perkembangan teknologi Internet yang berterusan, teknologi crawler juga telah digunakan secara meluas. Teknologi crawler secara automatik boleh merangkak data di Internet dan menyimpannya dalam pangkalan data, memberikan kemudahan untuk analisis data dan perlombongan data. Sebagai rangka kerja perangkak yang sangat terkenal dalam Python, Scrapy dilengkapi dengan beberapa templat perangkak biasa, yang boleh merangkak data dengan cepat pada tapak web sasaran dan menyimpannya secara automatik ke pangkalan data setempat atau awan. Artikel ini akan memperkenalkan cara menggunakan templat perangkak Scrapy sendiri untuk merangkak data dan cara membersihkan, menghuraikan dan menyimpan data semasa proses rangkak.

1. Pengenalan kepada templat perangkak Scrapy

Scrapy disertakan dengan beberapa templat perangkak, termasuk templat asas Spider, templat CrawlSpider dan templat XmlFeedSpider. Templat labah-labah ialah templat perangkak yang paling asas Kelebihannya ialah ia mempunyai pelbagai aplikasi dan mudah digunakan. Templat CrawlSpider ialah templat perangkak berasaskan peraturan yang boleh merangkak pautan berbilang peringkat dengan cepat dan menyokong peraturan tersuai. Templat XmlFeedSpider ialah templat perangkak yang sesuai untuk format XML. Menggunakan templat ini untuk merangkak data boleh mengurangkan kesukaran pembangunan untuk pengaturcara dan meningkatkan kecekapan merangkak.

2. Aplikasi templat perangkak Scrapy

Berikut ialah contoh praktikal untuk menggambarkan cara menggunakan templat Spider Scrapy sendiri untuk merangkak data. Tapak web sasaran yang akan kami rangkak ialah tapak web maklumat filem, dan maklumat filem terkini disenaraikan di halaman utama tapak web tersebut. Kami perlu merangkak nama filem, pengarah, pelakon, penilaian dan maklumat lain dari tapak web ini dan menyimpannya ke pangkalan data tempatan.

  1. Buat projek Scrapy

Mula-mula, anda perlu membuka tetingkap baris arahan, beralih ke direktori kerja sasaran, dan kemudian masukkan arahan berikut:

scrapy startproject movies
Salin selepas log masuk

Arahan ini Projek Scrapy bernama filem akan dibuat Direktori projek akan mengandungi subdirektori bernama labah-labah, yang digunakan untuk meletakkan program perangkak.

  1. Buat Templat Spider

Dalam direktori projek, gunakan arahan berikut untuk mencipta Spider bernama movie_spider:

scrapy genspider movie_spider www.movies.com
Salin selepas log masuk

Arahan ini akan Menjana secara automatik program berdasarkan templat Spider, di mana www.movies.com mewakili nama domain tapak web sasaran. Dalam direktori spiders, fail bernama movie_spider.py akan muncul dengan kandungan berikut:

import scrapy

class MovieSpider(scrapy.Spider):
    name = 'movie_spider'
    allowed_domains = ['www.movies.com']
    start_urls = ['http://www.movies.com/']

    def parse(self, response):
        pass
Salin selepas log masuk

Ini ialah program Spider yang paling asas. Antaranya, nama mewakili nama perangkak, allowed_domains mewakili senarai nama domain yang dibenarkan untuk dirangkak dan start_urls mewakili senarai URL mula merangkak. Dalam kaedah parse, kita perlu menulis kod untuk menghurai dan merebut data.

  1. Tangkapan dan analisis data

Kita perlu menulis kod untuk menangkap dan menghuraikan data tapak web sasaran daripada objek tindak balas. Untuk tapak web maklumat filem yang baru disebut, kami boleh menggunakan pemilih XPath atau CSS untuk mencari elemen pada halaman. Dengan mengandaikan bahawa nama filem disimpan dalam elemen div dengan nama filem kelas pada halaman, maka kita boleh menggunakan kod berikut untuk mengekstrak semua nama filem:

def parse(self, response):
    movies = response.xpath('//div[@class="movie-name"]/text()').extract()
    for movie in movies:
        yield {'name': movie}
Salin selepas log masuk

Di sini, kami menggunakan sintaks XPath untuk mencari Semua div elemen dengan nama filem kelas digunakan, dan kaedah ekstrak digunakan untuk mengekstrak kandungan teks dalam elemen. Seterusnya, kami menggunakan gelung for untuk menghasilkan setiap nama filem sebagai output penjana.

Begitu juga, kami boleh mencari elemen lain yang kami minati melalui pemilih XPath atau CSS. Sebagai contoh, maklumat pengarah dan pelakon boleh disimpan dalam elemen div dengan pengarah kelas, dan maklumat penarafan boleh disimpan dalam elemen div dengan kadar kelas.

  1. Storan Data

Dalam program Spider, kita perlu menulis kod untuk menyimpan data yang ditangkap ke pangkalan data setempat atau awan. Scrapy menyokong menyimpan data ke pelbagai pangkalan data yang berbeza, termasuk MySQL, PostgreSQL, MongoDB, dll.

Sebagai contoh, kami boleh menggunakan pangkalan data MySQL untuk menyimpan maklumat filem. Dalam direktori spiders, kita boleh mencipta fail bernama mysql_pipeline.py, yang mengandungi kod berikut:

import pymysql

class MysqlPipeline(object):
    def __init__(self):
        self.conn = pymysql.connect(host='localhost', user='root', passwd='123456', db='movie_db', charset='utf8')

    def process_item(self, item, spider):
        cursor = self.conn.cursor()
        sql = "INSERT INTO movie(name, director, actors, rate) VALUES(%s, %s, %s, %s)"
        cursor.execute(sql, (item['name'], item['director'], item['actors'], item['rate']))
        self.conn.commit()

    def __del__(self):
        self.conn.close()
Salin selepas log masuk

Program ini akan menyimpan data pelaksanaan ke pangkalan data MySQL, di mana movie_db ialah nama pangkalan data dan filem jadual akan mengandungi Empat medan nama, pengarah, pelakon dan kadar digunakan untuk menyimpan nama filem, pengarah, pelakon dan maklumat penilaian. Kaedah process_item digunakan untuk menyimpan item yang dihasilkan dalam program Spider ke pangkalan data.

Untuk menggunakan fail mysql_pipeline.py, kami juga perlu menambah konfigurasi berikut dalam fail settings.py:

ITEM_PIPELINES = {
    'movies.spiders.mysql_pipeline.MysqlPipeline': 300
}
Salin selepas log masuk

Di sini, 'movies.spiders.mysql_pipeline.MysqlPipeline' menentukan lokasi fail mysql_pipeline.py dan nama kelas. Nombor 300 menunjukkan keutamaan pemprosesan data Semakin kecil bilangannya, semakin tinggi keutamaannya.

  1. Jalankan program Scrapy

Dalam direktori spiders, laksanakan arahan berikut untuk menjalankan program Scrapy:

scrapy crawl movie_spider
Salin selepas log masuk

Arahan ini akan memulakan movie_spider Program crawler mula merangkak data tapak web sasaran dan menyimpannya ke dalam pangkalan data MySQL.

3. Ringkasan

Artikel ini memperkenalkan cara menggunakan templat perangkak Scrapy sendiri untuk merangkak data, termasuk templat Spider, templat CrawlSpider dan templat XmlFeedSpider. Kami mengambil contoh praktikal untuk menggambarkan cara menggunakan templat Spider untuk menangkap dan menghuraikan data, dan menyimpan hasilnya ke pangkalan data MySQL. Menggunakan Scrapy untuk penangkapan data boleh meningkatkan kecekapan dan kualiti pengumpulan data dengan sangat baik, dan memberikan sokongan kukuh untuk analisis data seterusnya, perlombongan data dan kerja lain.

Atas ialah kandungan terperinci Scrapy ialah aplikasi mengikis data yang disertakan dengan templat perangkak. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Berapa lama masa yang diambil untuk mempelajari crawler python Berapa lama masa yang diambil untuk mempelajari crawler python Oct 25, 2023 am 09:44 AM

Masa yang diperlukan untuk mempelajari crawler Python berbeza dari orang ke orang dan bergantung pada faktor seperti keupayaan pembelajaran peribadi, kaedah pembelajaran, masa pembelajaran dan pengalaman. Mempelajari crawler Python bukan sekadar mempelajari teknologi itu sendiri, tetapi juga memerlukan kemahiran mengumpul maklumat yang baik, kemahiran menyelesaikan masalah dan kemahiran kerja berpasukan. Melalui pembelajaran dan latihan berterusan, anda akan berkembang secara beransur-ansur menjadi pembangun perangkak Python yang cemerlang.

Kaedah pelaksanaan pemuatan asynchronous Scrapy berdasarkan Ajax Kaedah pelaksanaan pemuatan asynchronous Scrapy berdasarkan Ajax Jun 22, 2023 pm 11:09 PM

Scrapy ialah rangka kerja perangkak Python sumber terbuka yang boleh mendapatkan data daripada tapak web dengan cepat dan cekap. Walau bagaimanapun, banyak tapak web menggunakan teknologi pemuatan tak segerak Ajax, menjadikannya mustahil untuk Scrapy mendapatkan data secara langsung. Artikel ini akan memperkenalkan kaedah pelaksanaan Scrapy berdasarkan pemuatan tak segerak Ajax. 1. Prinsip pemuatan tak segerak Ajax Pemuatan tak segerak Ajax: Dalam kaedah pemuatan halaman tradisional, selepas pelayar menghantar permintaan kepada pelayan, ia mesti menunggu pelayan mengembalikan respons dan memuatkan keseluruhan halaman sebelum meneruskan ke langkah seterusnya.

Analisis kes buruk: Cara merangkak maklumat syarikat di LinkedIn Analisis kes buruk: Cara merangkak maklumat syarikat di LinkedIn Jun 23, 2023 am 10:04 AM

Scrapy ialah rangka kerja perangkak berasaskan Python yang boleh mendapatkan maklumat berkaitan dengan cepat dan mudah di Internet. Dalam artikel ini, kami akan menggunakan kes Scrapy untuk menganalisis secara terperinci cara merangkak maklumat syarikat di LinkedIn. Tentukan URL sasaran Mula-mula, kita perlu menjelaskan dengan jelas bahawa sasaran kita ialah maklumat syarikat di LinkedIn. Oleh itu, kita perlu mencari URL halaman maklumat syarikat LinkedIn. Buka laman web LinkedIn, masukkan nama syarikat dalam kotak carian, dan

Petua pengoptimuman buruk: Cara mengurangkan rangkak URL pendua dan meningkatkan kecekapan Petua pengoptimuman buruk: Cara mengurangkan rangkak URL pendua dan meningkatkan kecekapan Jun 22, 2023 pm 01:57 PM

Scrapy ialah rangka kerja perangkak Python yang berkuasa yang boleh digunakan untuk mendapatkan sejumlah besar data daripada Internet. Walau bagaimanapun, apabila membangunkan Scrapy, kami sering menghadapi masalah merangkak URL pendua, yang membuang banyak masa dan sumber serta menjejaskan kecekapan. Artikel ini akan memperkenalkan beberapa teknik pengoptimuman Scrapy untuk mengurangkan rangkak URL pendua dan meningkatkan kecekapan perangkak Scrapy. 1. Gunakan atribut start_urls dan allowed_domains dalam perangkak Scrapy untuk

Analisis dan penyelesaian kepada masalah biasa perangkak PHP Analisis dan penyelesaian kepada masalah biasa perangkak PHP Aug 06, 2023 pm 12:57 PM

Analisis masalah biasa dan penyelesaian untuk perangkak PHP Pengenalan: Dengan perkembangan pesat Internet, pemerolehan data rangkaian telah menjadi pautan penting dalam pelbagai bidang. Sebagai bahasa skrip yang digunakan secara meluas, PHP mempunyai keupayaan hebat dalam pemerolehan data Salah satu teknologi yang biasa digunakan ialah perangkak. Walau bagaimanapun, dalam proses membangunkan dan menggunakan perangkak PHP, kami sering menghadapi beberapa masalah. Artikel ini akan menganalisis dan memberikan penyelesaian kepada masalah ini dan memberikan contoh kod yang sepadan. 1. Perihalan masalah bahawa data halaman web sasaran tidak dapat dihuraikan dengan betul.

Menggunakan Selenium dan PhantomJS dalam perangkak Scrapy Menggunakan Selenium dan PhantomJS dalam perangkak Scrapy Jun 22, 2023 pm 06:03 PM

Menggunakan Selenium dan PhantomJSScrapy dalam perangkak Scrapy Scrapy ialah rangka kerja perangkak web yang sangat baik di bawah Python dan telah digunakan secara meluas dalam pengumpulan dan pemprosesan data dalam pelbagai bidang. Dalam pelaksanaan perangkak, kadangkala perlu untuk mensimulasikan operasi penyemak imbas untuk mendapatkan kandungan yang dibentangkan oleh tapak web tertentu Dalam kes ini, Selenium dan PhantomJS diperlukan. Selenium mensimulasikan operasi manusia pada penyemak imbas, membolehkan kami mengautomasikan ujian aplikasi web

Amalan perangkak Java yang cekap: perkongsian teknik rangkak data web Amalan perangkak Java yang cekap: perkongsian teknik rangkak data web Jan 09, 2024 pm 12:29 PM

Amalan perangkak Java: Cara merangkak data halaman web dengan cekap Pengenalan: Dengan perkembangan pesat Internet, sejumlah besar data berharga disimpan dalam pelbagai halaman web. Untuk mendapatkan data ini, selalunya perlu untuk mengakses setiap halaman web secara manual dan mengekstrak maklumat satu demi satu, yang sudah pasti tugas yang membosankan dan memakan masa. Untuk menyelesaikan masalah ini, orang ramai telah membangunkan pelbagai alat crawler, antaranya Java crawler adalah salah satu yang paling biasa digunakan. Artikel ini akan membawa pembaca memahami cara menggunakan Java untuk menulis perangkak web yang cekap dan menunjukkan amalan melalui contoh kod tertentu. 1. Pangkal reptilia

Penggunaan Scrapy yang mendalam: Bagaimana untuk merangkak data HTML, XML dan JSON? Penggunaan Scrapy yang mendalam: Bagaimana untuk merangkak data HTML, XML dan JSON? Jun 22, 2023 pm 05:58 PM

Scrapy ialah rangka kerja perangkak Python yang berkuasa yang boleh membantu kami mendapatkan data di Internet dengan cepat dan fleksibel. Dalam proses merangkak sebenar, kami sering menghadapi pelbagai format data seperti HTML, XML dan JSON. Dalam artikel ini, kami akan memperkenalkan cara menggunakan Scrapy untuk merangkak ketiga-tiga format data ini masing-masing. 1. Merangkak data HTML dan mencipta projek Scrapy Pertama, kita perlu membuat projek Scrapy. Buka baris arahan dan masukkan arahan berikut: scrapys

See all articles