Merangkak Scrap sedang beraksi: merangkak data kedudukan filem Maoyan
Dengan perkembangan Internet, merangkak data telah menjadi bahagian penting dalam era data besar. Dalam proses merangkak data, teknologi perangkak boleh digunakan untuk mendapatkan data yang diperlukan secara automatik pada masa ini, memproses dan menganalisisnya. Dalam beberapa tahun kebelakangan ini, Python telah menjadi salah satu bahasa pengaturcaraan yang paling popular.
Artikel ini berdasarkan rangka kerja Scrapy untuk merangkak data kedudukan filem Maoyan Proses khusus dibahagikan kepada empat bahagian: menganalisis struktur halaman, menulis rangka kerja perangkak, menghuraikan halaman dan menyimpan data.
1. Analisis struktur halaman
Pertama sekali, kita perlu menganalisis struktur halaman ranking filem Maoyan. Untuk kemudahan operasi, kami menggunakan penyemak imbas Google Chrome untuk analisis halaman dan XPath untuk mengekstrak maklumat yang diperlukan.
Seperti yang anda lihat, halaman kedudukan filem Maoyan mengandungi maklumat tentang berbilang filem dan setiap filem mempunyai blok kod HTML yang serupa dengan yang di bawah.
Matlamat kami adalah untuk mendapatkan lima data nama filem, peranan dibintangi, masa tayangan, pautan poster filem dan rating daripada setiap blok kod HTML. Kemudian kita boleh menekan kekunci F12 untuk membuka alat pembangun dalam penyemak imbas Google Chrome, kemudian pilih tab "Elemen", gerakkan tetikus ke elemen sasaran yang perlu kita ekstrak, klik kanan dan pilih "Salin -> Salin XPath " .
Laluan XPath yang disalin adalah seperti berikut:
/html/body/div[3]/div/div[2]/dl/dd[1]/div/div/div[ 1 ]/p[1]/a/text()
di mana "/html/body/div[3]/div/div[2]/dl/dd" mewakili nod induk bagi keseluruhan filem senarai, untuk Tatal ke bawah untuk mencari elemen yang perlu kami ekstrak.
2. Tulis rangka kerja perangkak
Seterusnya, kita perlu mencipta projek Scrapy, sila rujuk dokumentasi rasmi Scrapy (https://docs.scrapy.org/en/latest/intro / tutorial.html). Selepas mencipta projek, buat fail baharu bernama maoyan.py dalam direktori Spiders.
Berikut ialah kod rangka kerja perangkak kami:
import scrapy
dari maoyan.items import MaoyanItem
class MaoyanSpider(scrapy.Spider):
rreeeDalam kod, kami mula-mula mentakrifkan nama Spider, domain_benar dan url_mula. Antaranya, "domain_yang dibenarkan" bermakna hanya URL kepunyaan nama domain ini akan diakses dan diekstrak oleh perangkak. Pada masa yang sama, "start_urls" menunjukkan alamat URL pertama yang akan diminta oleh perangkak.
Kaedah penghuraian Spider menerima kandungan daripada respons, dan kemudian mengekstrak lima data bagi setiap nama filem, peranan dibintangi, masa tayangan, pautan poster filem dan rating melalui laluan XPath, dan menyimpannya ke MaoyanItem.
Akhir sekali, kami mengembalikan setiap objek Item melalui kata kunci hasil. Nota: Objek Item yang kami takrifkan berada dalam fail bernama items.py dan perlu diimport.
3. Menghuraikan halaman
Apabila perangkak mengesan halaman yang perlu kami rangkak, kami boleh mula menghuraikan dokumen HTML dan mengekstrak maklumat yang kami perlukan. Bahagian kandungan ini tertumpu terutamanya pada pertanyaan XPath dan pemprosesan ungkapan biasa objek tindak balas dalam Scrapy.
Dalam contoh ini, kami menggunakan laluan XPath untuk mengekstrak lima keping data bagi setiap filem dalam halaman ranking filem Maoyan.
4. Simpan data
Selepas data dihuraikan, kita perlu menyimpannya. Secara umumnya, kami menyimpan data yang diperoleh dalam fail atau menyimpannya ke pangkalan data.
Dalam contoh ini, kami memilih untuk menyimpan data ke fail .csv:
import csv
kelas MaoyanPipeline(objek):
rreeeDalam kod di atas, kami menggunakan modul csv dalaman Python untuk menulis data pada fail bernama maoyan_top100_movies.csv. Apabila labah-labah ditutup, fail csv juga akan ditutup.
Ringkasan
Melalui artikel ini, kami mempelajari cara menggunakan rangka kerja Scrapy untuk merangkak data kedudukan filem Maoyan. Mula-mula kami menganalisis struktur halaman, dan kemudian menulis rangka kerja Scrapy untuk merangkak data, menghuraikan halaman dan menyimpan data. Dalam pertempuran sebenar, kita boleh belajar cara menyatukan kesahihan, kebolehgunaan dan kecekapan dalam menangkap data.
Atas ialah kandungan terperinci Perangkak buruk sedang beraksi: merangkak data kedudukan filem Maoyan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!