Saya ingin membuat sebuah situs web yang menunjukkan perbandingan antara amazon dan e-bay dengan harga produk. Yang ini akan bekerja lebih baik dan mengapa? Saya agak akrab dengan BeautifulSoup tapi tidak begitu banyak dengan Scrapy crawler.
Scrapy adalah Web spider atau web scraper framework, Anda memberikan Scrapy akar URL untuk mulai merangkak, maka anda dapat menentukan batasan pada berapa banyak (jumlah) Url anda ingin merangkak dan mengambil,dll. Itu adalah sebuah framework untuk web scraping atau merangkak.
Sementara
BeautifulSoup adalah parsing perpustakaan yang juga melakukan pekerjaan yang cukup baik untuk mengambil isi dari URL dan memungkinkan anda untuk mengurai bagian-bagian tertentu dari mereka tanpa kerumitan. Itu hanya mengambil isi dari URL yang anda berikan dan kemudian berhenti. Tidak merangkak kecuali anda secara manual dimasukkan ke dalam loop tak terbatas dengan kriteria-kriteria tertentu.
Dalam kata-kata sederhana, dengan Sup yang Indah anda dapat membangun sesuatu yang mirip dengan Scrapy. Indah Sup adalah perpustakaan sementara Scrapy adalah lengkapi kerangka.
Saya pikir keduanya baik... im melakukan sebuah proyek sekarang yang menggunakan keduanya. Pertama aku scrap semua halaman menggunakan scrapy dan menyimpan yang pada mongodb koleksi menggunakan pipa, juga men-download gambar-gambar yang ada pada halaman. Setelah itu saya menggunakan BeautifulSoup4 untuk membuat pos-pengolahan di mana saya harus mengubah nilai atribut dan mendapatkan beberapa tag khusus.
Jika anda don't tahu mana halaman produk yang anda inginkan, alat yang baik akan scrapy karena anda dapat menggunakan crawler untuk menjalankan semua amazon/ebay website anda mencari produk tanpa membuat eksplisit untuk loop.
Lihatlah scrapy dokumentasi, it's sangat sederhana untuk digunakan.
Cara yang saya lakukan ini adalah untuk menggunakan eBay/Amazon API's daripada scrapy, dan kemudian mengurai hasil menggunakan BeautifulSoup.
Api memberikan anda sebuah cara resmi untuk mendapatkan data yang sama yang anda akan dapatkan dari scrapy crawler, dengan tidak perlu untuk khawatir tentang menyembunyikan identitas anda, main-main dengan proxy,dll.
Keduanya menggunakan untuk mengurai data.
Scrapy:
BeautifulSoup:
Indah Sup Python library untuk menarik data dari HTML dan File XML.
kita dapat menggunakan paket ini untuk mendapatkan data dari java script atau secara dinamis loading halaman.
Scrapy dengan BeautifulSoup adalah salah satu yang terbaik combo kita dapat bekerja dengan gesekan statis dan dinamis isi
Scrapy Ini adalah web scraping kerangka yang dilengkapi dengan banyak barang yang membuat gesekan dari mudah sehingga kita bisa fokus pada merangkak logika saja. Beberapa hal favorit saya scrapy mengurus untuk kita yang di bawah ini.
Pakan ekspor: pada dasarnya memungkinkan kita untuk menyimpan data dalam berbagai format seperti CSV,JSON,jsonlines dan XML.
Asynchronous scraping: Scrapy menggunakan twisted kerangka kerja yang memberi kita kekuatan untuk mengunjungi beberapa url sekaligus dimana setiap permintaan diproses di non memblokir jalan(pada Dasarnya kita don't harus menunggu permintaan untuk menyelesaikan sebelum mengirim permintaan lain).
Pemilih: Ini adalah di mana kita dapat membandingkan scrapy dengan indah sup. Penyeleksi adalah apa yang memungkinkan kita untuk memilih data tertentu dari halaman web, seperti judul, tertentu div dengan nama kelas dll.). Scrapy menggunakan lxml untuk parsing yang sangat cepat dari sup yang indah.
Pengaturan proxy,user agent ,header dll: scrapy memungkinkan kita untuk mengatur dan memutar proxy,dan lain header secara dinamis.
Item Pipa: Pipa memungkinkan kita untuk memproses data setelah ekstraksi. Misalnya kita dapat mengkonfigurasi pipa untuk mendorong data ke server mysql.
Cookie: scrapy secara otomatis menangani cookie untuk kita.
dll.
TLDR: scrapy adalah sebuah kerangka kerja yang menyediakan segala sesuatu yang mungkin perlu membangun skala besar merangkak. Ini menyediakan berbagai fitur yang menyembunyikan kompleksitas dari merangkak jaring. satu hanya dapat mulai menulis web crawler tanpa khawatir tentang pengaturan beban.
Indah sup Indah Sup adalah paket Python untuk parsing HTML dan XML dokumen. Jadi dengan Indah sup anda dapat mem-parsing halaman web yang telah di download. BS4 sangat populer dan tua. Tidak seperti scrapy,Anda tidak dapat menggunakan sup yang indah hanya untuk membuat crawler. Anda akan membutuhkan library lain seperti permintaan,urllib dll untuk membuat crawler dengan bs4. Sekali lagi, ini berarti anda akan perlu untuk mengelola daftar url yang sedang merangkak,harus merangkak, menangani cookies , mengatur proxy, menangani kesalahan, membuat fungsi anda sendiri untuk mendorong data ke CSV,JSON,XML dll. Jika anda ingin mempercepat dari yang anda akan memiliki untuk menggunakan perpustakaan lain seperti multiprocessing.
Untuk meringkas.
Scrapy kaya framework yang dapat anda gunakan untuk mulai menulis crawler tanpa hassale.
Indah sup adalah perpustakaan yang dapat anda gunakan untuk mem-parsing halaman web. Ini tidak dapat digunakan sendiri untuk mengikis web.
Anda pasti harus menggunakan scrapy untuk amazon dan e-bay produk situs perbandingan harga. Anda bisa membangun sebuah database dari url dan menjalankan crawler setiap hari(cron jobs,Seledri untuk penjadwalan merangkak) dan update harga pada database anda.Dengan cara ini website anda akan selalu tarik dari database dan crawler dan database akan bertindak sebagai individu komponen.
BeautifulSoup adalah perpustakaan yang memungkinkan anda untuk mengekstrak informasi dari sebuah halaman web.
Scrapy di sisi lain adalah sebuah kerangka kerja, yang melakukan hal di atas dan banyak lagi hal-hal yang anda mungkin perlu dalam menggores proyek seperti pipa untuk menyimpan data.
Anda bisa cek blog ini untuk mendapatkan dimulai dengan Scrapy https://www.inkoop.io/blog/web-scraping-using-python-and-scrapy/
Menggunakan scrapy anda dapat menyimpan banyak kode dan memulai dengan pemrograman terstruktur, Jika anda tidak menyukai salah satu scapy's pra-tertulis metode kemudian BeautifulSoup dapat digunakan di tempat scrapy metode. Proyek besar mengambil keuntungan.
Perbedaan yang banyak dan pilihan dari setiap alat/teknologi tergantung pada kebutuhan individu.
Beberapa perbedaan utama adalah: