Menyimpan Data dalam Pangkalan Data NoSQL
Pelajari bila dan cara menyimpan data yang dikikis dalam stor NoSQL berorientasikan dokumen seperti MongoDB untuk storan fleksibel dengan skema minimum.
Menyimpan Data dalam Pangkalan Data NoSQL ialah pelajaran Pengikisan Web dan Pembangunan Bot percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Pengikisan Web dan Pembangunan Bot, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Pengikisan Web dan Pembangunan Bot merangkumi sejumlah 4 pelajaran.
Apabila SQL Tidak Mencukupi
Data yang dikikis selalunya tidak seragam: halaman yang berbeza menghasilkan medan, struktur bersarang dan bentuk yang berubah-ubah. Skema SQL yang tegar boleh menyusahkan dalam keadaan ini.
Pangkalan data dokumen NoSQL menyimpan rekod fleksibel seperti JSON, menjadikannya sesuai untuk data web yang berserabut.
Dokumen dan Koleksi
Dalam stor dokumen seperti MongoDB:
- Dokumen ialah satu rekod seperti JSON.
- Koleksi mengumpulkan dokumen yang berkaitan, seperti jadual.
- Dokumen dalam satu koleksi tidak semestinya mempunyai medan yang sama.
{
"title": "Widget",
"price": 9.99,
"tags": ["tools", "sale"],
"vendor": { "name": "Acme", "rating": 4.5 }
}Menyambung dengan PyMongo
Pemacu pymongo menyambungkan Python kepada MongoDB. Dapatkan pemegang pangkalan data dan koleksi untuk mula menulis.
from pymongo import MongoClient
client = MongoClient('mongodb://localhost:27017')
db = client['scraping']
products = db['products']Memasukkan Dokumen
Masukkan satu rekod yang dikikis dengan insert_one atau sekumpulan rekod dengan insert_many. MongoDB menetapkan _id secara automatik.
record = {'title': 'Gadget', 'price': 14.5, 'tags': ['new']}
result = products.insert_one(record)
print(result.inserted_id)Mengelakkan Pendua dengan Upsert
Menjalankan semula pengikis data tidak sepatutnya mencipta baris pendua. Upsert mengemas kini dokumen yang sepadan atau memasukkannya jika tiada, berdasarkan medan stabil seperti URL produk.
products.update_one(
{'url': record['url']},
{'$set': record},
upsert=True
)Indeks Unik
Paksa keunikan pada peringkat pangkalan data dengan indeks. Ini melindungi integriti walaupun kod Anda mempunyai pepijat.
products.create_index('url', unique=True)Membuat Pertanyaan terhadap Data Tersimpan
Dapatkan semula rekod dengan dokumen penapis. Operator seperti $gt dan $in menyatakan syarat.
cheap = products.find({'price': {'$lt': 10}})
for doc in cheap:
print(doc['title'], doc['price'])Menyimpan Data Bersarang dan Tatasusunan
Tidak seperti lajur SQL rata, dokumen menyimpan objek bersarang dan tatasusunan secara asli. Ini mengekalkan struktur asal halaman yang dikikis tanpa jadual cantuman.
review_doc = {
'product': 'Widget',
'reviews': [
{'user': 'a', 'stars': 5},
{'user': 'b', 'stars': 4}
]
}
db['catalog'].insert_one(review_doc)Penulisan Pukal untuk Kelajuan
Untuk pengikisan data berskala besar, operasi secara kelompok mengurangkan perjalanan ulang-alik dengan ketara. Kumpulkan penulisan dan keluarkannya bersama-sama.
from pymongo import UpdateOne
ops = [UpdateOne({'url': r['url']}, {'$set': r}, upsert=True) for r in batch]
products.bulk_write(ops)SQL berbanding NoSQL untuk Pengikisan Data
Pilih berdasarkan data Anda:
- NoSQL untuk rekod yang berubah-ubah, bersarang dan cepat berubah.
- SQL apabila medan stabil dan Anda memerlukan cantuman atau kekangan ketat.
Banyak saluran paip meletakkan data mentah dalam NoSQL terlebih dahulu, kemudian mengubahnya kepada SQL untuk analisis.
Menambah Cap Masa dan Metadata
Sentiasa cap setiap dokumen yang dikikis dengan masa dokumen itu ditangkap dan sumbernya. Ini membolehkan Anda menjejaki kesegaran, menyahpepijat tugas yang bermasalah dan mengikis semula rekod lapuk secara terpilih.
from datetime import datetime
record['scraped_at'] = datetime.utcnow()
record['source'] = 'site.com'
products.insert_one(record)Semakan Pantas
Uji pemahaman Anda tentang penyimpanan NoSQL.
Imbas Kembali
Anda telah belajar menyimpan data yang dikikis dalam NoSQL: dokumen dan koleksi, penyambungan dengan PyMongo, upsert dan indeks unik untuk mengelakkan pendua, pertanyaan, data bersarang dan penulisan pukal.
Stor dokumen memberikan pengikis data penyimpanan yang fleksibel dan boleh diskalakan.
Pelajari Python dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 12
- Pelajaran
- 48
Soalan Lazim
Adakah pelajaran “Menyimpan Data dalam Pangkalan Data NoSQL” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Pengikisan Web dan Pembangunan Bot, termasuk “Menyimpan Data dalam Pangkalan Data NoSQL”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Pengikisan Web dan Pembangunan Bot merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Menyimpan Data dalam Pangkalan Data NoSQL”?
Pelajari bila dan cara menyimpan data yang dikikis dalam stor NoSQL berorientasikan dokumen seperti MongoDB untuk storan fleksibel dengan skema minimum. Anda berlatih Pengikisan Web dan Pembangunan Bot menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Pengikisan Web dan Pembangunan Bot?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Pengikisan Web dan Pembangunan Bot di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.
Berapa lamakah pelajaran “Menyimpan Data dalam Pangkalan Data NoSQL” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Pengikisan Web dan Pembangunan Bot ini?
Ya. Setiap pelajaran Pengikisan Web dan Pembangunan Bot menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Menyimpan Data dalam CSV/JSON
- Mengintegrasikan dengan Pangkalan Data (SQL)
- Penyelesaian Storan Awan
- Menyimpan Data dalam Pangkalan Data NoSQL