


Scrapy in action: merangkak data filem Douban dan rating kedudukan populariti
Scrapy ialah rangka kerja Python sumber terbuka yang digunakan untuk merangkak data dengan cepat dan cekap. Dalam artikel ini, kami akan menggunakan Scrapy untuk merangkak data dan menilai populariti filem Douban.
- Persediaan
Mula-mula, kita perlu memasang Scrapy. Anda boleh memasang Scrapy dengan menaip arahan berikut pada baris arahan:
pip install scrapy
Seterusnya, kami akan mencipta projek Scrapy. Pada baris arahan, masukkan arahan berikut:
scrapy startproject doubanmovie
Ini akan mencipta projek Scrapy bernama doubanmovie. Kami kemudian akan pergi ke direktori projek dan mencipta Spider yang dipanggil douban.py. Pada baris arahan, masukkan arahan berikut:
cd doubanmovie scrapy genspider douban douban.com
Sekarang, kami mempunyai Spider sedia untuk digunakan. Seterusnya, kami akan menentukan tingkah laku labah-labah untuk mendapatkan data yang diperlukan.
- Data filem merangkak
Kami akan menggunakan Spider untuk merangkak data filem Douban. Secara khusus, kami akan mendapat maklumat berikut:
- Nama Filem
- Pengarah
- Pelakon
- Genre
- Negara
- Bahasa
- Tarikh keluaran
- Panjang
- Rating
- Bilangan penyemak
Buka fail douban.py , kami akan menambah kod berikut:
import scrapy class DoubanSpider(scrapy.Spider): name = 'douban' allowed_domains = ['douban.com'] start_urls = ['https://movie.douban.com/top250'] def parse(self, response): movie_list = response.xpath('//div[@class="item"]') for movie in movie_list: yield { 'name': movie.xpath('.//span[@class="title"]/text()').get(), 'director': movie.xpath('.//div[@class="bd"]/p/text()[1]').get(), 'actors': movie.xpath('.//div[@class="bd"]/p/text()[2]').get(), 'genre': movie.xpath('.//div[@class="bd"]/p/text()[3]').get(), 'country': movie.xpath('.//div[@class="bd"]/p/text()[4]').get(), 'language': movie.xpath('.//div[@class="bd"]/p/text()[5]').get(), 'release_date': movie.xpath('.//div[@class="bd"]/p/text()[6]').get(), 'duration': movie.xpath('.//div[@class="bd"]/p/text()[7]').get(), 'rating': movie.xpath('.//span[@class="rating_num"]/text()').get(), 'num_reviews': movie.xpath('.//div[@class="star"]/span[@class="rating_num"]/text()').get(), }
Dalam kod ini, kami menggunakan XPath untuk memilih maklumat yang perlu kami dapatkan. Kami menggunakan hasil untuk menjana maklumat ini dan mengembalikannya kepada pengguna.
Jika kami menjalankan Spider kami sekarang (jalankan arahan berikut: scrapy crawl douban), ia akan merangkak data untuk 250 filem pertama dan mengembalikannya ke baris arahan.
- Dapatkan kedudukan populariti rating
Kini, kami telah berjaya memperoleh data 250 filem teratas. Seterusnya, kami akan mendapat kedudukan populariti rating mereka.
Kita perlu mencipta Spider baharu terlebih dahulu untuk merangkak senarai TOP250 filem Douban. Kami akan menggunakan senarai ini untuk mendapatkan kedudukan filem.
Dalam fail douban.py, kami akan menambah kod berikut:
import scrapy class DoubanSpider(scrapy.Spider): name = 'douban' allowed_domains = ['douban.com'] start_urls = ['https://movie.douban.com/top250'] def parse(self, response): movie_list = response.xpath('//div[@class="item"]') for movie in movie_list: yield { 'name': movie.xpath('.//span[@class="title"]/text()').get(), 'director': movie.xpath('.//div[@class="bd"]/p/text()[1]').get(), 'actors': movie.xpath('.//div[@class="bd"]/p/text()[2]').get(), 'genre': movie.xpath('.//div[@class="bd"]/p/text()[3]').get(), 'country': movie.xpath('.//div[@class="bd"]/p/text()[4]').get(), 'language': movie.xpath('.//div[@class="bd"]/p/text()[5]').get(), 'release_date': movie.xpath('.//div[@class="bd"]/p/text()[6]').get(), 'duration': movie.xpath('.//div[@class="bd"]/p/text()[7]').get(), 'rating': movie.xpath('.//span[@class="rating_num"]/text()').get(), 'num_reviews': movie.xpath('.//div[@class="star"]/span[@class="rating_num"]/text()').get(), } next_page = response.xpath('//span[@class="next"]/a/@href') if next_page: url = response.urljoin(next_page[0].get()) yield scrapy.Request(url, callback=self.parse)
Dalam kod tersebut, kami menggunakan pembolehubah yang dipanggil next_page untuk menyemak sama ada kami telah mencapai halaman terakhir. Jika kami belum sampai ke halaman terakhir, kami terus merangkak ke halaman seterusnya.
Seterusnya, kita perlu mengemas kini kaedah parse untuk mendapatkan ranking filem. Kami akan menggunakan fungsi enumerate Python untuk mengaitkan kedudukan dengan setiap filem.
Dalam fail douban.py, kami akan menggantikan kaedah parse asal:
def parse(self, response): movie_list = response.xpath('//div[@class="item"]') for i, movie in enumerate(movie_list): yield { 'rank': i + 1, 'name': movie.xpath('.//span[@class="title"]/text()').get(), 'director': movie.xpath('.//div[@class="bd"]/p/text()[1]').get(), 'actors': movie.xpath('.//div[@class="bd"]/p/text()[2]').get(), 'genre': movie.xpath('.//div[@class="bd"]/p/text()[3]').get(), 'country': movie.xpath('.//div[@class="bd"]/p/text()[4]').get(), 'language': movie.xpath('.//div[@class="bd"]/p/text()[5]').get(), 'release_date': movie.xpath('.//div[@class="bd"]/p/text()[6]').get(), 'duration': movie.xpath('.//div[@class="bd"]/p/text()[7]').get(), 'rating': movie.xpath('.//span[@class="rating_num"]/text()').get(), 'num_reviews': movie.xpath('.//div[@class="star"]/span[@class="rating_num"]/text()').get(), } next_page = response.xpath('//span[@class="next"]/a/@href') if next_page: url = response.urljoin(next_page[0].get()) yield scrapy.Request(url, callback=self.parse)
Sekarang, jika kami menjalankan Spider kami sekali lagi, ia akan mendapat data untuk 250 filem pertama dan adakah Mereka akan dikembalikan ke baris arahan. Pada ketika ini, kita akan melihat kedudukan semua filem.
- Kesimpulan
Scrapy ialah alat yang sangat berkuasa dan fleksibel untuk merangkak data dengan cepat dan cekap. Dalam artikel ini, kami telah berjaya menggunakan Scrapy untuk merangkak data dan menilai kedudukan populariti filem Douban.
Kami menggunakan kod Python dan XPath untuk mendapatkan maklumat secara selektif pada halaman web dan menggunakan pernyataan hasil untuk mengembalikannya kepada pengguna. Sepanjang proses, Scrapy menyediakan cara yang mudah dan berkesan untuk mengurus dan merangkak sejumlah besar data, membolehkan kami melakukan analisis dan pemprosesan data dengan cepat.
Atas ialah kandungan terperinci Scrapy in action: merangkak data filem Douban dan rating kedudukan populariti. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Scrapy melaksanakan rangkak artikel dan analisis akaun awam WeChat WeChat ialah aplikasi media sosial yang popular dalam beberapa tahun kebelakangan ini, dan akaun awam yang dikendalikan di dalamnya juga memainkan peranan yang sangat penting. Seperti yang kita sedia maklum, akaun awam WeChat adalah lautan maklumat dan pengetahuan, kerana setiap akaun awam boleh menerbitkan artikel, mesej grafik dan maklumat lain. Maklumat ini boleh digunakan secara meluas dalam banyak bidang, seperti laporan media, penyelidikan akademik, dsb. Jadi, artikel ini akan memperkenalkan cara menggunakan rangka kerja Scrapy untuk merangkak dan menganalisis artikel akaun awam WeChat. Scr

Pengenalan Minggu lepas, saya menulis pengenalan tentang mengikis halaman web untuk mengumpul metadata, dan menyebut bahawa adalah mustahil untuk mengikis laman web New York Times. The New York Times paywall menyekat percubaan anda untuk mengumpul metadata asas. Tetapi ada cara untuk menyelesaikan masalah ini menggunakan API New York Times. Baru-baru ini saya mula membina tapak web komuniti pada platform Yii, yang akan saya terbitkan dalam tutorial akan datang. Saya mahu dapat menambahkan pautan yang berkaitan dengan kandungan tapak dengan mudah. Walaupun orang ramai boleh menampal URL ke dalam borang dengan mudah, memberikan tajuk dan maklumat sumber memakan masa. Jadi dalam tutorial hari ini saya akan melanjutkan kod mengikis yang saya tulis baru-baru ini untuk memanfaatkan New York Times API untuk mengumpulkan tajuk berita apabila menambah pautan ke New York Times. Ingat, saya terlibat

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.

Bagaimana untuk menetapkan mod bahasa Inggeris pada aplikasi Douban? Aplikasi Douban ialah perisian yang membolehkan anda melihat ulasan pelbagai sumber Perisian ini mempunyai banyak fungsi Apabila pengguna menggunakan perisian ini buat kali pertama, mereka perlu log masuk, dan bahasa lalai pada perisian ini adalah Untuk mod Cina, beberapa. pengguna suka menggunakan mod Bahasa Inggeris, tetapi mereka tidak tahu cara menetapkan mod Bahasa Inggeris pada perisian ini. Editor di bawah telah menyusun kaedah menetapkan mod Bahasa Inggeris untuk rujukan anda. Cara menetapkan mod Bahasa Inggeris pada aplikasi Douban: 1. Buka aplikasi "Douban" pada telefon anda 2. Klik "Saya" 3. Pilih "Tetapan" di sudut kanan atas.

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

Bagaimana untuk merangkak dan memproses data dengan memanggil antara muka API dalam projek PHP? 1. Pengenalan Dalam projek PHP, kita selalunya perlu merangkak data dari tapak web lain dan memproses data ini. Banyak tapak web menyediakan antara muka API, dan kami boleh mendapatkan data dengan memanggil antara muka ini. Artikel ini akan memperkenalkan cara menggunakan PHP untuk memanggil antara muka API untuk merangkak dan memproses data. 2. Dapatkan URL dan parameter antara muka API Sebelum memulakan, kita perlu mendapatkan URL antara muka API sasaran dan parameter yang diperlukan.

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

Menurut berita dari laman web ini pada 17 Ogos, filem thriller angkasa lepas "Alien: The Last Ship" oleh 20th Century Pictures telah dikeluarkan di tanah besar China semalam (16 Ogos) diumumkan hari ini sebagai 7.7. Menurut data masa nyata dari Beacon Professional Edition, setakat 20:5 pada 17 Ogos, box office filem itu telah melebihi 100 juta. Taburan penilaian di laman web ini adalah seperti berikut: 5 bintang menyumbang 20.9% 4 bintang menyumbang 49.5% 3 bintang menyumbang 25.4% 2 bintang menyumbang 3.7% 1 bintang menyumbang 0.6% "Alien: Death Ship" dihasilkan oleh 20th Century Pictures , Ridley Scott, pengarah "Blade Runner" dan "Prometheus", bertindak sebagai penerbit, diarahkan oleh Fede Alvare, ditulis oleh Fede Alvare dan Rodo Seiagues, dan Card Leigh Spaeny, Isabella Merced, Aileen Wu, Spike Fey
