SundSoup और Scrapy क्रॉलर के बीच अंतर?


134

मैं एक ऐसी वेबसाइट बनाना चाहता हूं, जो अमेज़ॅन और ई-बे उत्पाद की कीमत के बीच तुलना दिखाती है। इनमें से कौन बेहतर काम करेगा और क्यों? मैं BeautifulSoup से कुछ हद तक परिचित हूं लेकिन स्क्रेपी क्रॉलर के साथ ऐसा नहीं है ।


6
जब आप उन दोनों साइटों में एक महान एपीआई है तो आप क्रॉलर का उपयोग क्यों करेंगे? aws.amazon.com/python developer.ebay.com/common/api
रोज

5
मैं भारत से हूँ और मुझे लगता है कि Amazon-Api भारत की मेजबानी का समर्थन नहीं करता है। भारत के लिए कोई एपली (लोकेल) नहीं है । HOSTS = {'ca': 'ecs.amazonaws.ca', 'cn': 'webservices.amazon.cn', 'de': 'ecs.amazonaws.de', 'es': webservices.amazon.es ' , 'fr': 'ecs.amazonaws.fr', 'it': 'webservices.amazon.it', 'jp': 'ecs.amazonaws.jp', 'uk': 'ecs .amazonaws.co.uk' , 'हम': 'ecs.amazonaws.com',}
निशांत भक्त

11
और क्या होगा अगर मैं कुछ अन्य साइट को क्रॉल करना चाहता हूं जिसमें एपीआई नहीं है?
निशांत भक्त

@InbarRose अमेज़ॅन के उत्पाद एपीआई का उपयोग करने के लिए अमेज़ॅन एसोसिएट खाते की आवश्यकता होती है।
ज़ाचरी रयान स्मिथ

जवाबों:


231

स्क्रेपी एक वेब-स्पाइडर या वेब स्क्रैपर फ्रेमवर्क है , आप क्रैपी को रेंगने की शुरुआत करने के लिए एक रूट URL देते हैं, फिर आप कितने क्रॉल (URL) क्रॉल करना चाहते हैं, आदि पर आप यह निर्दिष्ट कर सकते हैं। यह वेब-स्क्रैपिंग या क्रॉलिंग के लिए एक पूर्ण ढांचा है ।

जबकि

BeautifulSoup एक पार्सिंग लाइब्रेरी है, जो URL से सामग्री प्राप्त करने का एक बहुत अच्छा काम करता है और आपको बिना किसी परेशानी के कुछ हिस्सों को पार्स करने की अनुमति देता है। यह केवल आपके द्वारा दिए गए URL की सामग्री को प्राप्त करता है और फिर बंद हो जाता है। यह तब तक क्रॉल नहीं करता है जब तक कि आप इसे कुछ मानदंडों के साथ अनंत लूप के अंदर मैन्युअल रूप से न डालें।

सरल शब्दों में, ब्यूटीफुल सूप से आप स्क्रेपी के समान कुछ बना सकते हैं। सुंदर सूप एक पुस्तकालय है जबकि स्क्रेपी एक पूर्ण रूपरेखा है

स्रोत


1
जो तेज है, मेरा मतलब है कि मैं ब्यूटीफुल का उपयोग कर रहा हूं और डेटा को स्क्रैप करने के लिए लगभग 10 सेकंड का समय लगता है? सुंदर की तुलना में तेजी से मैला करता है?
shuboy2014

यदि आप ब्लॉकिंग कोड के साथ सुंदरसुप का उपयोग करते हैं, तो स्क्रैपी तेज होनी चाहिए जब तक कि बनाने के लिए स्वतंत्र अनुरोध हैं, लेकिन मुझे लगता है कि आप बेहतर प्रदर्शन प्राप्त करने के लिए एसिंको के साथ सुंदरसुप का भी उपयोग कर सकते हैं।
dyeray

मैं कहूंगा, सुंदरसुपे के साथ स्क्रेपी सुपर फास्ट होगा और आप दोनों में से सर्वश्रेष्ठ प्राप्त करने में सक्षम होंगे।
राहुल

18

मुझे लगता है कि दोनों अच्छे हैं ... अभी एक प्रोजेक्ट कर रहे हैं जो दोनों का उपयोग करें। पहले मैं सभी पेजों को खुरच कर उपयोग करता हूं और सहेजता हूं कि उनकी पाइपलाइनों का उपयोग करके एक मोनगोडब संग्रह पर, उन छवियों को डाउनलोड करना जो पृष्ठ पर मौजूद हैं। उसके बाद मैं एक सुंदर प्रसंस्करण का उपयोग करने के लिए BeautifulSoup4 का उपयोग करता हूं जहां मुझे विशेषताओं के मूल्यों को बदलना होगा और कुछ विशेष टैग प्राप्त करने होंगे।

यदि आप नहीं जानते हैं कि आपको कौन से पेज के उत्पाद चाहिए, तो एक अच्छा उपकरण खराब हो जाएगा क्योंकि आप लूप के लिए स्पष्ट किए बिना उत्पादों की तलाश में सभी अमेज़ॅन / ईबे वेबसाइट को चलाने के लिए उनके क्रॉलर का उपयोग कर सकते हैं।

स्क्रैपी प्रलेखन पर एक नज़र डालें, यह उपयोग करने के लिए बहुत सरल है।


तो क्या मैं वेब सर्वर पर स्क्रेपी का उपयोग कर सकता हूं क्योंकि इसकी कई निर्भरताएं हैं जैसे (ट्विस्टेड, pywin32, pyOpenSSL ete ..)। (इस मूर्खतापूर्ण सवाल के लिए क्षमा करें, मैं अजगर के लिए नया हूं)
निशांत भक्त

वेब सर्वर पर? मैं कभी कोशिश नहीं करता कि ... मैं इसे शेल पर उपयोग करता हूं, मकड़ी को चलाने के लिए "क्रॉसी क्रॉल <क्रॉलर का नाम>" निष्पादित करें ... शायद आप सर्वर पर इसका उपयोग कर सकते हैं, लेकिन आपको अजगर का उपयोग करके इसे कॉल करना होगा उपप्रोसेसर मॉड्यूल ( docs.python.org/2/library/subprocess.html )। जैसा कि मैंने कहा कि यह कभी भी कोशिश न करें, लेकिन शायद यह काम कर सकता है ... बस एक नोट, स्क्रैपी से लॉग संदेश का उपयोग करें ताकि आप यह जान सकें कि आपके क्रॉलर पर कहां से हो सकता है (स्क्रैप आयात आयात से)।
रदादई

4

दोनों डेटा पार्स करने के लिए उपयोग कर रहे हैं।

बकवास :

  • स्क्रेपी एक तेज़ उच्च-स्तरीय वेब क्रॉलिंग और वेब स्क्रैपिंग फ्रेमवर्क है, जिसका उपयोग वेबसाइटों को क्रॉल करने और उनके पृष्ठों से संरचित डेटा निकालने के लिए किया जाता है।
  • लेकिन इसकी कुछ सीमाएं हैं जब डेटा जावा स्क्रिप्ट या लोडिंग डायनेमिकली से आता है, हम इसे स्प्लैश, सेलेनियम आदि जैसे पैकेज का उपयोग करके आ सकते हैं।

सुंदर :

  • सुंदर सूप HTML और XML फ़ाइलों से डेटा खींचने के लिए एक पायथन लाइब्रेरी है।

  • हम इस पैकेज का उपयोग जावा स्क्रिप्ट या गतिशील रूप से लोड हो रहे पृष्ठों से डेटा प्राप्त करने के लिए कर सकते हैं।

ब्यूटीफुलसैप के साथ स्क्रेपी सर्वश्रेष्ठ कॉम्बो में से एक है जिसे हम स्थिर और गतिशील सामग्री को स्क्रैप करने के लिए काम कर सकते हैं


2

जिस तरह से मैं यह कर रहा हूं वह ईबे / अमेज़ॅन एपीआई को स्क्रैप करने के बजाय उपयोग करना है, और फिर सुंदरसुप्र का उपयोग करके परिणामों को पार्स करें।

एपीआई आपको एक ही डेटा प्राप्त करने का एक आधिकारिक तरीका प्रदान करता है जो आपको स्क्रेपी क्रॉलर से मिला होगा, जिसमें आपको अपनी पहचान छिपाने के बारे में चिंता करने की ज़रूरत नहीं है, प्रॉक्सी के साथ गड़बड़ करना, आदि।


8
सवाल स्पष्ट रूप से समाधान के लिए पूछता है जहां एपीआई उपलब्ध नहीं हैं।
रोहनिल

2

स्क्रेपी यह एक वेब स्क्रैपिंग फ्रेमवर्क है, जो टन के साथ आता है, जो आसान से स्क्रैपिंग करता है ताकि हम केवल क्रॉलिंग लॉजिक पर ध्यान केंद्रित कर सकें। मेरी पसंदीदा चीजों में से कुछ हमारे लिए ध्यान रखती हैं नीचे दी गई हैं।

  • फ़ीड निर्यात : यह मूल रूप से CSV, JSON, jsonlines और XML जैसे विभिन्न स्वरूपों में डेटा को सहेजने की अनुमति देता है।
  • एसिंक्रोनस स्क्रैपिंग: स्क्रेपी ट्विस्टेड फ्रेमवर्क का उपयोग करता है जो हमें एक साथ कई यूआरएल पर जाने की शक्ति देता है जहां प्रत्येक अनुरोध को गैर-अवरुद्ध तरीके से संसाधित किया जाता है (मूल रूप से हमें किसी अन्य अनुरोध को भेजने से पहले समाप्त करने के लिए अनुरोध का इंतजार नहीं करना पड़ता है)।
  • चयनकर्ता : यह वह जगह है जहाँ हम सुंदर सूप के साथ स्क्रैप की तुलना कर सकते हैं। चयनकर्ता वे होते हैं जो हमें वेबपेज से किसी विशेष डेटा का चयन करने की अनुमति देते हैं जैसे हेडिंग, एक वर्ग नाम के साथ कुछ div)। स्क्रेपी पार्सिंग के लिए lxml का उपयोग करता है जो सुंदर सूप की तुलना में बहुत तेज है।
  • प्रॉक्सी, यूजर एजेंट, हेडर आदि को सेट करना: स्क्रेपी हमें प्रॉक्सी और अन्य हेडर को गतिशील रूप से सेट और रोटेट करने की अनुमति देता है।

  • आइटम पाइपलाइन : पाइपलाइन हमें निष्कर्षण के बाद डेटा को संसाधित करने में सक्षम बनाती हैं। उदाहरण के लिए हम आपके mysql सर्वर पर डेटा पुश करने के लिए पाइपलाइन को कॉन्फ़िगर कर सकते हैं।

  • कुकीज़: स्क्रैपी स्वचालित रूप से हमारे लिए कुकीज़ संभालती है।

आदि।

TLDR: स्क्रैपी एक ऐसा ढांचा है जो सब कुछ प्रदान करता है जो किसी को बड़े पैमाने पर क्रॉल बनाने की आवश्यकता हो सकती है। यह विभिन्न विशेषताएं प्रदान करता है जो जाले रेंगने की जटिलता को छिपाते हैं। एक बस सेटअप बोझ के बारे में चिंता किए बिना वेब क्रॉलर लिखना शुरू कर सकता है।

सुंदर सूप सुंदर सूप HTML और XML दस्तावेजों को पार्स करने के लिए एक पायथन पैकेज है। तो सुंदर सूप के साथ आप एक वेबपेज को पार्स कर सकते हैं जो पहले ही डाउनलोड हो चुका है। बीएस 4 बहुत लोकप्रिय और पुराना है। स्क्रैपी के विपरीत, आप केवल क्रॉलर बनाने के लिए सुंदर सूप का उपयोग नहीं कर सकते । Bs4 के साथ क्रॉलर बनाने के लिए आपको अन्य पुस्तकालयों जैसे अनुरोधों, urllib आदि की आवश्यकता होगी। फिर, इसका मतलब है कि आपको क्रॉल किए जाने वाले url की सूची को प्रबंधित करना होगा, क्रॉल किया जाना होगा, कुकीज़ को संभालना होगा, प्रॉक्सी को प्रबंधित करना होगा, त्रुटियों को हैंडल करना होगा, CSV, JSON, XML आदि के डेटा को पुश करने के लिए अपने स्वयं के फ़ंक्शन बनाएं। की तुलना में आप जैसे अन्य पुस्तकालयों का उपयोग करना होगा बहु

सारांश में।

  • स्क्रेपी एक समृद्ध ढांचा है जिसका उपयोग आप बिना किसी परेशानी के क्रॉलर लिखना शुरू कर सकते हैं।

  • सुंदर सूप एक पुस्तकालय है जिसका उपयोग आप वेबपेज को पार्स करने के लिए कर सकते हैं। इसका उपयोग अकेले वेब को खुरचने के लिए नहीं किया जा सकता है।

आपको अपने अमेज़ॅन और ई-बे उत्पाद मूल्य तुलना वेबसाइट के लिए निश्चित रूप से स्क्रैपी का उपयोग करना चाहिए। आप हर दिन डेटाबेस का निर्माण कर सकते हैं और क्रॉलर चला सकते हैं (क्रॉल जॉब्स, शेड्यूलिंग क्रॉल के लिए सेलेरी) और अपने डेटाबेस पर कीमत को अपडेट कर सकते हैं। इस तरह से आपकी वेबसाइट हमेशा डेटाबेस से क्रॉल करेगी और क्रॉलर और डेटाबेस व्यक्तिगत घटकों के रूप में कार्य करेंगे।


1

ब्यूटीसाउप एक पुस्तकालय है जो आपको एक वेब पेज से जानकारी निकालने की सुविधा देता है।

दूसरी ओर स्क्रैपी एक ढांचा है, जो उपरोक्त चीज और कई और चीजें हैं जो आपको अपने स्क्रैपिंग प्रोजेक्ट में आवश्यक हैं जैसे कि डेटा को बचाने के लिए पाइपलाइन।

Scrapy https://www.inkoop.io/blog/web-scraping-use-python-and-scrapy/ के साथ आरंभ करने के लिए आप इस ब्लॉग को देख सकते हैं


0

का उपयोग करते हुए scrapy आप Scapy की पूर्व लिखित तरीकों तो के किसी भी पसंद नहीं है, तो आप उस कोड के टन बचाने के लिए और संरचित प्रोग्रामिंग के साथ शुरू कर सकते हैं BeautifulSoup scrapy विधि के स्थान पर इस्तेमाल किया जा सकता। बड़ी परियोजना दोनों लाभ लेती है।


0

अंतर कई हैं और किसी भी उपकरण / प्रौद्योगिकी का चयन व्यक्तिगत जरूरतों पर निर्भर करता है।

कुछ प्रमुख अंतर हैं:

  1. सुंदर से तुलनात्मक रूप से स्क्रेपी से सीखना आसान है
  2. एक्सटेंशन, सपोर्ट, कम्युनिटी, सुंदरसुपी की तुलना में स्क्रेपी के लिए बड़ा है।
  3. स्क्रेपी को स्पाइडर के रूप में माना जाना चाहिए जबकि सुंदरसुपर एक पार्सर है
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.