Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Amalan rangka kerja buruk: merangkak data tapak web Jianshu

Amalan rangka kerja buruk: merangkak data tapak web Jianshu

WBOY
WBOYasal
2023-06-22 09:36:561302semak imbas

Amalan rangka kerja Scrapy: merangkak data tapak web Jianshu

Scrapy ialah rangka kerja perangkak Python sumber terbuka yang boleh digunakan untuk mengekstrak data daripada World Wide Web. Dalam artikel ini, kami akan memperkenalkan rangka kerja Scrapy dan menggunakannya untuk merangkak data daripada tapak web Jianshu.

  1. Memasang Scrapy

Scrapy boleh dipasang menggunakan pengurus pakej seperti pip atau conda. Di sini, kami menggunakan pip untuk memasang Scrapy. Masukkan arahan berikut dalam baris arahan:

pip install scrapy

Setelah pemasangan selesai, anda boleh menggunakan arahan berikut untuk menyemak sama ada Scrapy telah berjaya dipasang:

scrapy version

Jika anda melihat sesuatu seperti " Scrapy x.x.x - tiada keluaran projek aktif", Scrapy telah berjaya dipasang.

  1. Buat projek Scrapy

Sebelum kita mula menggunakan Scrapy, kita perlu mencipta projek Scrapy. Masukkan arahan berikut pada baris arahan:

scrapy startproject jianshu

Ini akan mencipta projek Scrapy bernama "jianshu" dalam direktori semasa.

  1. Membuat perangkak Scrapy

Dalam Scrapy, perangkak ialah komponen yang memproses data yang diekstrak daripada tapak web. Kami menggunakan Scrapy Shell untuk menganalisis tapak web Jianshu dan mencipta perangkak.

Masukkan arahan berikut pada baris arahan:

scrapy shell "https://www.jianshu.com"

Ini akan melancarkan Scrapy Shell di mana kami boleh melihat kod sumber halaman dan elemen tapak web Jianshu untuk membuat pemilih untuk perangkak kami .

Sebagai contoh, kita boleh menggunakan pemilih berikut untuk mengekstrak tajuk artikel:

response.css('h1.title::text').extract_first()

Kita boleh menggunakan pemilih berikut untuk mengekstrak pengarang artikel:

response.css('a.name::text').extract_first()

Diuji dalam Scrapy Shell Selepas memilih pemilih, kami boleh mencipta fail Python baharu untuk perangkak kami. Masukkan arahan berikut pada baris arahan:

scrapy genspider jianshu_spider jianshu.com

Ini akan mencipta perangkak Scrapy bernama "jianshu_spider". Kami boleh menambah pemilih yang kami uji dalam Scrapy Shell pada fail .py perangkak dan menentukan data untuk diekstrak.

Sebagai contoh, kod berikut mengekstrak tajuk dan pengarang semua artikel di halaman utama tapak web Jianshu:

import scrapy

class JianshuSpider(scrapy.Spider):
    name = 'jianshu_spider'
    allowed_domains = ['jianshu.com']
    start_urls = ['https://www.jianshu.com/']

    def parse(self, response):
        for article in response.css('li[data-note-id]'):
            yield {
                'title': article.css('a.title::text').extract_first(),
                'author': article.css('a.name::text').extract_first(),
            }
  1. Jalankan perangkak Scrapy dan keluarkan hasilnya

Sekarang, kami melaksanakan perangkak Scrapy dalam mod baris arahan dan mengeluarkan hasilnya kepada fail JSON. Masukkan arahan berikut pada baris arahan:

scrapy crawl jianshu_spider -o articles.json

Perintah ini akan menjalankan perangkak kami dan menyimpan data output ke fail JSON yang dipanggil "articles.json".

  1. Kesimpulan

Dalam artikel ini, kami memperkenalkan rangka kerja Scrapy dan menggunakannya untuk mengikis data daripada tapak web Jianshu. Mengekstrak data daripada tapak web adalah mudah menggunakan rangka kerja Scrapy, dan Scrapy adalah serentak dan berskala supaya ia boleh menskalakan ke dalam aplikasi pengekstrakan data berskala besar.

Atas ialah kandungan terperinci Amalan rangka kerja buruk: merangkak data tapak web Jianshu. 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