Rumah >pembangunan bahagian belakang >Tutorial Python >Cara menggunakan Scrapy untuk merangkak data produk pedagang JD

Cara menggunakan Scrapy untuk merangkak data produk pedagang JD

PHPz
PHPzasal
2023-06-23 08:01:231777semak imbas

Cara menggunakan Scrapy untuk merangkak data produk pedagang JD

Scrapy ialah rangka kerja perangkak web Python yang berkuasa yang membolehkan kami menulis kod untuk merangkak data halaman web dengan mudah dan mudah. Artikel ini akan memperkenalkan cara menggunakan Scrapy untuk merangkak data produk pedagang JD.

Persediaan

Sebelum kita mula menulis kod, kita perlu membuat beberapa persediaan.

1. Pasang Scrapy

Kami perlu memasang Scrapy secara setempat Jika anda belum memasang Scrapy lagi, anda boleh memasukkan arahan berikut dalam baris arahan:

pip install Scrapy

2. . Cipta Projek Scrapy

Buka terminal dan masukkan arahan berikut:

scrapy startproject JDspider

Baris arahan ini akan mencipta projek Scrapy bernama JDspider dalam folder semasa.

3. Cipta Labah-labah

Dalam Scrapy, Labah-labah ialah komponen teras untuk merangkak data. Kita perlu mencipta Spider untuk mendapatkan data produk peniaga JD. Masukkan arahan berikut dalam baris arahan:

cd JDspider
scrapy genspider JD jd.com

Di sini kami menggunakan perintah genspider scrapy untuk menjana Spider bernama JD dan menggunakan jd.com sebagai URL permulaannya. Kod yang dijana terletak dalam fail JDspider/spiders/JD.py Sekarang kita perlu mengedit fail ini untuk melengkapkan perangkak.

Analisis tapak web sasaran

Sebelum menulis kod, kita perlu menganalisis tapak web sasaran terlebih dahulu. Mari kita ambil https://mall.jd.com/index-1000000127.html sebagai contoh.

Buka penyemak imbas Chrome, tekan kekunci F12 untuk membuka alatan pembangun, dan kemudian klik tab Rangkaian. Selepas memasukkan URL tapak web sasaran, kita boleh melihat maklumat permintaan dan respons tapak web sasaran.

Kami dapati daripada ini bahawa ia menggunakan teknologi AJAX untuk memuatkan data senarai produk. Dalam tab XMLHttpRequest, kita boleh melihat URL permintaan dan ia mengembalikan data dalam format JSON.

Kami boleh mengakses terus URL ini untuk mendapatkan maklumat produk.

Dapatkan data produk

Kami kini tahu cara mendapatkan maklumat produk, kami boleh menambah kod dalam Spider untuk menyelesaikan tugasan ini.

Mula-mula buka fail JDspider/spiders/JD.py dan cari definisi kelas Spider. Kita perlu mengubah suai kelas ini dan menentukan namanya, nama domain dan URL permulaannya.

class JdSpider(scrapy.Spider):
    name = "JD"
    allowed_domains = ["jd.com"]
    start_urls = [
        "https://pro.jd.com/mall/active/3W9j276jGAAFpgx5vds5msKg82gX/index.html"
    ]

Mula mengikis data. Dalam Scrapy, kita perlu menggunakan kaedah parse() untuk mendapatkan data halaman web. Kami menggunakan modul json untuk menghuraikan data JSON yang dikembalikan dan mengekstrak maklumat yang diperlukan. Di sini, kami mendapat maklumat tajuk, harga, alamat dan kuantiti produk.

    def parse(self, response):
        products = json.loads(response.body)['data']['productList']
        for product in products:
            title = product['name']
            price = product['pricer']
            address = product['storeName']
            count = product['totalSellCount']
            yield {
                'title': title,
                'price': price,
                'address': address,
                'count': count,
            }

Sekarang kami telah menyelesaikan penangkapan data. Kita boleh menjalankan labah-labah ini dan mengeluarkan hasilnya ke fail. Masukkan arahan berikut dalam terminal untuk mula menjalankan Spider:

scrapy crawl JD -o products.json
  • JD ialah nama Spider yang kami cipta
  • -o ialah pilihan output, menyatakan untuk menyimpan yang ditangkap hasil Di mana;
  • products.json ialah nama fail, dan hasilnya akan disimpan dalam fail ini.

Ini ialah contoh mudah yang hanya menunjukkan cara menggunakan Scrapy untuk merangkak data produk pedagang JD. Dalam aplikasi praktikal, kita mungkin perlu melakukan pemprosesan yang lebih kompleks. Scrapy menyediakan banyak alat dan modul yang berkuasa untuk mencapai matlamat ini.

Atas ialah kandungan terperinci Cara menggunakan Scrapy untuk merangkak data produk pedagang JD. 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