Saya ingin membuat website yang menunjukkan perbandingan harga produk amazon dan e-bay. Manakah dari berikut ini yang akan bekerja lebih baik dan mengapa? Saya agak akrab dengan BeautifulSoup tetapi tidak begitu banyak dengan crawler Scrapy .
python
beautifulsoup
scrapy
web-crawler
Nishant Bhakta
sumber
sumber
Jawaban:
Scrapy adalah kerangka web-spider atau web scraper , Anda memberi Scrapy URL root untuk mulai merayapi, kemudian Anda dapat menentukan batasan tentang berapa banyak (jumlah) URL yang ingin Anda rayapi dan ambil, dll. Ini adalah kerangka kerja lengkap untuk web-scraping atau perayapan .
Sementara
BeautifulSoup adalah pustaka parsing yang juga melakukan pekerjaan yang cukup baik untuk mengambil konten dari URL dan memungkinkan Anda untuk mengurai bagian-bagian tertentu tanpa kerumitan. Ini hanya mengambil konten dari URL yang Anda berikan dan kemudian berhenti. Itu tidak merayapi kecuali Anda secara manual memasukkannya ke dalam loop tak terbatas dengan kriteria tertentu.
Dengan kata sederhana, dengan Beautiful Soup Anda dapat membuat sesuatu yang mirip dengan Scrapy. Beautiful Soup adalah perpustakaan sementara Scrapy adalah kerangka kerja yang lengkap .
Sumber
sumber
Saya pikir keduanya bagus ... saya sedang mengerjakan proyek sekarang yang menggunakan keduanya. Pertama saya scrap semua halaman menggunakan scrapy dan menyimpannya di koleksi mongodb menggunakan pipeline mereka, juga mendownload gambar yang ada di halaman tersebut. Setelah itu saya menggunakan BeautifulSoup4 untuk membuat pemrosesan pos di mana saya harus mengubah nilai atribut dan mendapatkan beberapa tag khusus.
Jika Anda tidak tahu produk halaman mana yang Anda inginkan, alat yang bagus tidak akan berguna karena Anda dapat menggunakan crawler mereka untuk menjalankan semua situs web amazon / ebay mencari produk tanpa membuat loop for eksplisit.
Lihatlah dokumentasi scrapy, ini sangat mudah digunakan.
sumber
Keduanya digunakan untuk mengurai data.
Scrapy :
BeautifulSoup :
Beautiful Soup adalah pustaka Python untuk menarik data dari file HTML dan XML.
kita dapat menggunakan paket ini untuk mendapatkan data dari java script atau memuat halaman secara dinamis.
Scrapy with BeautifulSoup adalah salah satu kombo terbaik yang dapat kami gunakan untuk mengorek konten statis dan dinamis
sumber
Cara saya melakukannya adalah dengan menggunakan eBay / Amazon API daripada scrapy, dan kemudian mengurai hasilnya menggunakan BeautifulSoup.
API memberi Anda cara resmi untuk mendapatkan data yang sama yang akan Anda dapatkan dari perayap scrapy, tanpa perlu khawatir menyembunyikan identitas Anda, mengacaukan proxy, dll.
sumber
Scrapy It adalah kerangka web scraping yang dilengkapi dengan banyak hal yang membuat scraping lebih mudah sehingga kita dapat fokus pada logika perayapan saja. Beberapa hal favorit saya yang perlu diperhatikan oleh scrapy untuk kami ada di bawah ini.
Setting proxy, user agent, header dll: scrapy memungkinkan kita untuk mengatur dan merotasi proxy, dan header lainnya secara dinamis.
Item Pipelines : Pipelines memungkinkan kami memproses data setelah ekstraksi. Misalnya kita dapat mengkonfigurasi pipeline untuk mendorong data ke server mysql Anda.
Cookie: scrapy secara otomatis menangani cookie untuk kami.
dll.
Beautiful soup Beautiful Soup adalah paket Python untuk mengurai dokumen HTML dan XML . Jadi dengan Beautiful soup Anda bisa mengurai halaman web yang sudah diunduh. BS4 sangat populer dan tua. Tidak seperti scrapy, Anda tidak bisa menggunakan sup cantik hanya untuk membuat crawl . Anda akan membutuhkan pustaka lain seperti request, urllib dll untuk membuat crawler dengan bs4. Sekali lagi, ini berarti Anda perlu mengelola daftar url yang sedang dirayapi, untuk dirayapi, menangani cookie, mengelola proxy, menangani kesalahan, membuat fungsi Anda sendiri untuk mendorong data ke CSV, JSON, XML, dll. Jika Anda ingin mempercepat daripada Anda harus menggunakan pustaka lain seperti multiprocessing .
Untuk menyimpulkan.
Scrapy adalah kerangka kerja kaya yang dapat Anda gunakan untuk mulai menulis crawler tanpa kerumitan apa pun.
Sup yang indah adalah pustaka yang dapat Anda gunakan untuk mengurai halaman web. Itu tidak dapat digunakan sendiri untuk mengikis web.
Anda pasti harus menggunakan scrapy untuk situs web perbandingan harga produk amazon dan e-bay Anda. Anda dapat membangun basis data url dan menjalankan perayap setiap hari (tugas cron, Celery untuk penjadwalan penjelajahan) dan memperbarui harga pada basis data Anda. Dengan cara ini situs web Anda akan selalu menarik dari basis data dan perayap dan basis data akan bertindak sebagai komponen individual.
sumber
BeautifulSoup adalah pustaka yang memungkinkan Anda mengekstrak informasi dari halaman web.
Scrapy di sisi lain adalah kerangka kerja, yang melakukan hal di atas dan banyak lagi hal yang mungkin Anda perlukan dalam proyek scraping Anda seperti pipeline untuk menyimpan data.
Anda dapat memeriksa blog ini untuk memulai dengan Scrapy https://www.inkoop.io/blog/web-scraping-using-python-and-scrapy/
sumber
Menggunakan scrapy Anda dapat menghemat banyak kode dan mulai dengan pemrograman terstruktur. Jika Anda tidak menyukai metode scapy yang sudah ditulis sebelumnya, BeautifulSoup dapat digunakan sebagai pengganti metode scrapy. Proyek besar mengambil kedua keuntungan tersebut.
sumber
Perbedaannya banyak dan pemilihan alat / teknologi apa pun tergantung pada kebutuhan individu.
Beberapa perbedaan utama adalah:
sumber