Scrapy ialah rangka kerja perangkak Python yang popular Ia menggunakan sintaks yang ringkas dan mudah difahami untuk mendapatkan maklumat daripada sumber web dengan mudah dan melaksanakan pemprosesan dan analisis automatik. Fleksibiliti dan skalabiliti Scrapy menjadikannya sesuai untuk analisis data dan carta.
Artikel ini akan bermula dengan pengenalan kepada fungsi dan ciri asas Scrapy, kemudian memperkenalkan cara menggunakan Scrapy untuk mengautomasikan analisis data dan langkah melukis carta, dan memberikan beberapa contoh penggunaan, dengan harapan dapat membantu pembaca semasa menganalisis besar jumlah data.
Ciri dan fungsi Scrapy
Sebelum mula memperkenalkan penggunaan Scrapy untuk analisis data dan lukisan carta, mari kita fahami dulu ciri dan fungsi Scrapy:
Ciri dan fungsi di atas menjadikan Scrapy sebagai alat analisis data dan carta yang sangat baik Mari kita lihat cara menggunakan Scrapy untuk mengautomasikan analisis data dan lukisan carta.
Cara menggunakan Scrapy untuk mengautomasikan analisis data dan lukisan carta
Pertama, kita perlu mencipta projek Scrapy melalui arahan berikut:
scrapy startproject myproject
Arahan ini akan mencipta direktori baharu bernama myproject, yang mengandungi semua fail dan folder yang diperlukan untuk projek Scrapy.
Dalam Scrapy, Labah-labah ialah salah satu komponen terpenting, yang mentakrifkan kelakuan dan peraturan perangkak. Dengan menulis labah-labah, kita boleh memberitahu Scrapy cara mendapatkan dan memproses data halaman web. Di sini, kita perlu menentukan halaman web yang hendak dirangkak, cara menghuraikan halaman, cara mengekstrak data, dsb.
Berikut ialah contoh Spider yang mudah:
import scrapy class MySpider(scrapy.Spider): name = "myspider" allowed_domains = ["example.com"] start_urls = [ "http://www.example.com/", ] def parse(self, response): for sel in response.xpath('//ul/li'): item = {} item['title'] = sel.xpath('a/text()').extract_first() item['link'] = sel.xpath('a/@href').extract_first() yield item
Dalam contoh ini, kami mentakrifkan Spider bernama MySpider, kami menentukan tapak web example.com untuk merangkak dan menentukan Senarai start_urls dicipta, yang mengandungi URL semua halaman web yang ingin kami perolehi. Apabila Spider berjalan, ia akan mendapatkan semua halaman yang sepadan berdasarkan start_urls dan mengekstrak data.
Dalam fungsi parse(), kami menggunakan XPath untuk mengekstrak data yang mengandungi teg a dalam semua teg li, dan kemudian menyimpan tajuk dan pautan dalam medan item masing-masing.
Selepas kami memperoleh data, kami perlu menyimpannya ke pangkalan data untuk analisis dan visualisasi seterusnya. Dalam Scrapy, anda boleh menggunakan Item Pipeline untuk menyimpan data secara automatik ke dalam pangkalan data.
import pymongo class MongoDBPipeline(object): def __init__(self): self.client = pymongo.MongoClient(host='localhost', port=27017) self.db = self.client['mydb'] def process_item(self, item, spider): self.db['mycollection'].insert_one(dict(item)) return item
Dalam contoh ini, kami menggunakan perpustakaan PyMongo untuk menyambung ke pangkalan data MongoDB dan memasukkan data dalam item ke dalam koleksi mycollection dalam fungsi process_item().
Selepas data kami disimpan dalam pangkalan data, kami boleh menggunakan perpustakaan seperti Pandas, NumPy dan Matplotlib untuk analisis dan carta data.
import pandas as pd import pymongo import matplotlib.pyplot as plt class AnalysisPipeline(object): def __init__(self): self.client = pymongo.MongoClient(host='localhost', port=27017) self.db = self.client['mydb'] self.collection = self.db['mycollection'] def process_item(self, item, spider): return item def close_spider(self, spider): df = pd.DataFrame(list(self.collection.find())) df['price'] = pd.to_numeric(df['price']) df.hist(column='price', bins=20) plt.show()
Dalam contoh ini, kami membaca data daripada pangkalan data MongoDB ke dalam Pandas DataFrame dan memplot histogram menggunakan pustaka Matplotlib. Kita boleh menggunakan pelbagai fungsi analisis Pandas untuk menganalisis data, seperti mengira min atau sisihan piawai, dsb.
Ringkasan
Dalam artikel ini, kami memperkenalkan ciri dan fungsi Scrapy serta cara menggunakan Scrapy untuk analisis dan carta data automatik. Melalui ciri Scrapy yang fleksibel dan boleh diperluaskan, kami boleh mendapatkan dan memproses data dengan mudah serta menggunakan perpustakaan seperti Pandas dan Matplotlib untuk analisis dan carta data untuk memahami dan menganalisis data dengan lebih baik. Jika anda sedang mencari alat mengikis web automatik yang berkuasa, Scrapy sememangnya satu pilihan yang patut dicuba.
Atas ialah kandungan terperinci Bagaimanakah Scrapy mengautomasikan analisis dan carta data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!