Rumah pembangunan bahagian belakang Tutorial Python Bagaimana cara menggunakan Scrapy untuk merangkak data Zhihu?

Bagaimana cara menggunakan Scrapy untuk merangkak data Zhihu?

Jun 22, 2023 pm 02:51 PM
Zhihu reptilia scrapy

Scrapy ialah alat perangkak web Python yang boleh membantu kami mendapatkan pelbagai data dengan mudah di Internet. Zhihu ialah platform Soal Jawab sosial yang popular Gunakan Scrapy untuk menangkap soalan, jawapan, maklumat pengguna dan data lain dengan cepat di Zhihu. Artikel ini akan memperkenalkan cara menggunakan Scrapy untuk merangkak data Zhihu.

  1. Memasang Scrapy

Mula-mula anda perlu memasang Scrapy. Anda boleh menggunakan arahan pip untuk memasang terus:

pip install scrapy
Salin selepas log masuk
  1. Buat projek Scrapy

Masukkan direktori tempat anda ingin mencipta projek Scrapy dalam terminal dan gunakan yang berikut arahan untuk mencipta projek:

scrapy startproject zhihu
Salin selepas log masuk

Arahan ini akan mencipta projek Scrapy bernama "zhihu" dalam direktori semasa.

  1. Cipta Spider

Gunakan arahan berikut untuk mencipta fail Spider bernama "zhihu_spider.py" dalam direktori projek:

scrapy genspider zhihu_spider zhihu.com
Salin selepas log masuk

Arahan ini akan Cipta fail "zhihu_spider.py" dalam subdirektori "spiders" di bawah direktori projek Fail ini mengandungi Spider dengan zhihu.com sebagai URL permulaan.

  1. Tulis kod Spider

Buka fail "zhihu_spider.py" dan tambah kod berikut:

import scrapy

class ZhihuSpider(scrapy.Spider):
    name = 'zhihu'
    allowed_domains = ['zhihu.com']
    start_urls = ['https://www.zhihu.com/']

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

Kod mentakrifkan fail bernama "ZhihuSpider "Kelas labah-labah. Kelas Spider perlu mentakrifkan atribut berikut:

  • nama: Nama labah-labah
  • domain_yang dibenarkan: Nama domain dilawati
  • start_urls: URL permulaan Spider

Dalam contoh ini, URL permulaan Spider ditetapkan kepada zhihu.com. Spider juga mesti mengandungi kaedah yang dipanggil "parse" untuk memproses data yang dikembalikan oleh respons. Dalam contoh ini, kaedah "parse" belum dilaksanakan, jadi pernyataan "lulus" kosong ditambahkan dahulu.

  1. Menghuraikan data halaman

Selepas mencipta Spider, anda perlu menambah kod untuk menghuraikan data halaman. Dalam kaedah "parse", gunakan kod berikut:

def parse(self, response):
        questions = response.css('div[data-type="question"]')
        for question in questions:
            yield {
                'question': question.css('h2 a::text').get(),
                'link': question.css('h2 a::attr(href)').get(),
                'answers': question.css('div.zm-item-answer::text').getall(),
            }
Salin selepas log masuk

Kod ini mendapat elemen div dalam halaman yang mengandungi atribut "jenis data" tanpa "soalan". Kemudian, gelung melalui setiap elemen div untuk mengekstrak tajuk soalan, pautan dan senarai jawapan.

Dalam kod di atas, "hasil" ialah kata kunci dalam bahasa Python yang digunakan untuk menjana penjana. Penjana ialah lelaran yang mengandungi elemen Selepas setiap elemen dikembalikan, pelaksanaan dijeda pada kedudukan elemen tersebut. Dalam Scrapy, kata kunci "hasil" digunakan untuk mengembalikan data yang dihuraikan daripada halaman ke dalam Scrapy.

  1. Jalankan perangkak

Selepas anda selesai menulis kod, gunakan arahan berikut untuk menjalankan perangkak dalam terminal:

scrapy crawl zhihu
Salin selepas log masuk

Arahan ini akan lancarkan rangka kerja Scrapy dan mulakan data Crawling Zhihu. Scrapy secara automatik akan mengakses URL permulaan yang dinyatakan dalam Spider dan menghuraikan data halaman yang dikembalikan melalui kaedah "parse". Data yang dihuraikan akan dikeluarkan ke terminal. Jika anda perlu menyimpan data, anda boleh menyimpan data dalam fail CSV, JSON, dsb.

  1. Merangkak data pengguna

Kod di atas hanya boleh merangkak soalan, jawapan dan data lain, tetapi tidak boleh mendapatkan maklumat pengguna. Jika anda perlu merangkak data pengguna, anda perlu menggunakan antara muka API Zhihu. Dalam Spider, anda boleh menggunakan kod berikut untuk mendapatkan data format JSON yang dikembalikan oleh antara muka API:

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}
url = f'https://www.zhihu.com/api/v4/members/{user}?include=following_count,follower_count,badge[?(type=best_answerer)].topics&limit=20'
yield scrapy.Request(url, headers=headers, callback=self.parse_user)
Salin selepas log masuk

Kod ini memperoleh maklumat pengguna yang ditentukan daripada antara muka API. Di sini, rentetan berformat f-string digunakan untuk memasukkan nama pengguna pengguna yang akan diperolehi ke dalam URL.

Dalam fungsi panggil balik, gunakan kod berikut untuk mengekstrak data yang diperlukan daripada data format JSON:

def parse_user(self, response):
        data = json.loads(response.body)['data']
        following_count = data['following_count']
        follower_count = data['follower_count']
        best_answerer = data['badge'][0]['topics']
        yield {
            'user_id': data['id'],
            'name': data['name'],
            'headline': data['headline'],
            'following_count': following_count,
            'follower_count': follower_count,
            'best_answerer': best_answerer,
        }
Salin selepas log masuk

Kod ini mengekstrak ID pengguna, nama panggilan pengguna, avatar dan ikut daripada JSON data Nombor, bilangan peminat, soalan jawapan terbaik dan data lain.

  1. Ringkasan

Artikel ini memperkenalkan cara menggunakan Scrapy untuk merangkak data Zhihu. Pertama, anda perlu membuat projek Scrapy dan mencipta Spider. Kemudian, gunakan pemilih CSS untuk menghuraikan data dalam halaman dan menyimpan data yang dirangkak dalam penjana. Akhir sekali, simpannya dalam fail CSV, JSON, dsb., atau keluarkan terus ke terminal. Jika anda perlu mendapatkan data pengguna, anda boleh menggunakan antara muka API Zhihu untuk mengekstrak data yang berkaitan daripada data JSON.

Atas ialah kandungan terperinci Bagaimana cara menggunakan Scrapy untuk merangkak data Zhihu?. 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

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

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)

Bagaimana untuk membatalkan pembaharuan automatik untuk ahli aplikasi Zhihu Bagaimana untuk membatalkan pembaharuan automatik untuk ahli aplikasi Zhihu Bagaimana untuk membatalkan pembaharuan automatik untuk ahli aplikasi Zhihu Bagaimana untuk membatalkan pembaharuan automatik untuk ahli aplikasi Zhihu Mar 13, 2024 am 11:04 AM

Bagaimana untuk membatalkan pembaharuan automatik keahlian aplikasi Zhihu? Aplikasi Zhihu ialah perisian mudah alih yang sangat praktikal Perisian ini mempunyai banyak fungsi, dan setiap fungsi akan membawa perasaan yang berbeza kepada pengguna. Terdapat beberapa kandungan pada perisian ini yang memerlukan pengguna mendaftar sebagai ahli sebelum mereka boleh membacanya. Keahlian pada perisian ini tidak mahal, dan keahlian bulanan berterusan akan menjadi lebih murah. Sesetengah pemain ingin tahu cara membatalkan pembaharuan automatik Editor di bawah telah menyusun kaedah untuk membatalkan pembaharuan automatik untuk rujukan anda. Cara membatalkan pembaharuan automatik untuk ahli aplikasi Zhihu Ahli Zhihu boleh memilih empat kaedah pembaharuan, termasuk Apple Pay, WeChat Pay, Alipay Pay dan Baidu Pay. Bagi pengguna yang memilih Baidu Pay, pembaharuan boleh diuruskan melalui pembayaran WeChat atau Alipay.

Adakah anda tahu jika anda menyekat seseorang di Zhihu? Adakah anda tahu jika anda menyekat seseorang di Zhihu? Mar 21, 2024 pm 03:44 PM

Mengikut kefahaman kita, orang yang disenaraihitamkan itu tidak boleh tahu langsung bahawa dia telah disenaraihitamkan. Tetapi jika orang yang disekat menghantar mesej peribadi, mereka akan menyedari bahawa mereka telah disekat dengan menerima mesej bahawa mesej itu tidak boleh dihantar. Walau bagaimanapun, jika orang yang disekat tidak menggunakan pemesejan peribadi, mereka mungkin tidak dimaklumkan bahawa mereka telah disekat.

Bagaimana untuk menyalin pautan halaman utama peribadi Zhihu Bagaimana untuk menyalin pautan halaman utama peribadi Zhihu Feb 23, 2024 pm 12:40 PM

Pautan halaman utama peribadi dalam Zhihu boleh disalin, jadi bagaimana untuk menyalin pautan halaman utama peribadi? Pengguna perlu pergi ke laman utama peribadi mereka, kemudian klik pada tiga titik di bahagian atas sebelah kanan dan pilih untuk menyalin pautan. Pengenalan kepada cara menyalin pautan halaman utama peribadi ini boleh memberitahu anda kandungan khusus Berikut ialah pengenalan terperinci, jadi sila lihat! Tutorial Zhihu: Bagaimana untuk menyalin pautan ke halaman utama peribadi Zhihu Jawapan: Klik tiga titik pada halaman utama peribadi anda dan pilih Salin Pautan? Kaedah khusus: 1. Pertama klik pada avatar dalam Saya untuk memasuki halaman utama. 2. Klik ikon tiga titik di penjuru kanan sebelah atas. 3. Klik pautan salin di bawah. Kemudian anda boleh menghantarnya kepada orang lain

Cara menerbitkan artikel di Zhihu_Tutorial tentang menerbitkan artikel di Zhihu Cara menerbitkan artikel di Zhihu_Tutorial tentang menerbitkan artikel di Zhihu Mar 22, 2024 pm 07:00 PM

1. Buka apl Zhihu, klik Saya di penjuru kanan sebelah bawah, dan klik pilihan penciptaan. 2. Pada halaman Pusat Penciptaan, klik Kandungan Saya dan klik Artikel. 3. Selepas memasuki halaman artikel, klik Tulis Artikel di bawah, edit kandungan artikel dan terbitkannya.

Cara menyediakan mod malam pada Zhihu_Cara menyediakan mod malam pada Zhihu Cara menyediakan mod malam pada Zhihu_Cara menyediakan mod malam pada Zhihu Mar 22, 2024 pm 02:11 PM

1. Buka APP Zhihu dan klik [Saya] di sudut kanan bawah 2. Anda boleh melihat [Mod Malam] pada antara muka Saya, klik untuk menetapkannya. Jika anda mempunyai sebarang soalan, pergi ke Zhihu. Zhihu, komuniti Soal Jawab yang boleh dipercayai, mempunyai misi untuk membenarkan semua orang mendapatkan jawapan yang boleh dipercayai dengan cekap. Zhihu bergantung pada suasana komuniti yang serius, profesional dan mesra, kandungan berkualiti tinggi yang berstruktur, mudah diakses dan platform pengeluaran kandungan berasaskan Soal Jawab.

Bagaimana untuk membaca novel di Zhihu? Kongsi cara membaca novel di Zhihu! Bagaimana untuk membaca novel di Zhihu? Kongsi cara membaca novel di Zhihu! Mar 15, 2024 pm 05:34 PM

1. Bagaimana cara membaca novel di Zhihu? Kongsi cara membaca novel di Zhihu! 1. Cari novel: Buka apl Zhihu, masukkan novel dalam bar carian dan cari untuk mendapatkan banyak sumber novel dengan tema yang berbeza. 2. Baca novel dalam saluran Pemilihan Garam untuk ahli: Di ​​bar bawah antara muka halaman utama, klik pada ahli, dan anda boleh melihat lajur Pilihan Garam, yang mengandungi sejumlah besar novel. 3. Syorkan novel di halaman utama: Jika anda membaca terlalu banyak novel, perisian akan secara automatik mengesyorkan novel yang anda minati. Jika anda menyemak imbas cadangan halaman utama beberapa kali, anda boleh membaca novel baharu. 4. Ikuti pengarang novel dan baca novel: Ramai pengarang telah menggunakan perisian Ikut atau langgan mereka dan anda akan menerima peringatan kemas kini tepat pada masanya.

Bagaimana untuk melihat rekod ulasan anda sendiri di Zhihu Bagaimana untuk melihat rekod ulasan sejarah? Bagaimana untuk melihat rekod ulasan anda sendiri di Zhihu Bagaimana untuk melihat rekod ulasan sejarah? Mar 12, 2024 pm 02:40 PM

Mengenai platform ini, kami mempunyai banyak komen dan kandungan lain yang dicari oleh rakan-rakan kami, jadi tidak kira di mana kami berada, kami boleh mendapatkan dan menontonnya melalui platform ini sangat berminat dan suka beberapa komen Tidak kira apa aspek, kita boleh memilih pelbagai kaedah pada bila-bila masa, bukan sahaja tanpa sekatan, Ia juga membolehkan anda untuk bebas melihat beberapa rekod penilaian sejarah , tetapi masih terdapat ramai pengguna yang tidak tahu cara melaksanakan operasi ini, jadi hari ini saya ingin mengucapkan selamat tahun baru kepada anda Izinkan saya memberikan penjelasan yang baik tentang beberapa pilihan di atas untuk dirindui cepat sertai kami.

Zhihu mematikan pembaharuan keahlian automatik Zhihu mematikan pembaharuan keahlian automatik Mar 21, 2024 pm 04:01 PM

Buka Apl Zhihu, masukkan halaman utama peribadi anda dan klik "Tetapan" → "Akaun dan Keselamatan" → "Perkhidmatan Keahlian VIP" → "Kitaran Pembelian Keahlian" → "Batalkan Pembaharuan Automatik" untuk mematikan fungsi pembaharuan automatik bagi mengelakkan Potongan yang tidak perlu.

See all articles