21 पॉइंट द्वारा GN⁺ 2024-07-11 | 2 टिप्पणियां | WhatsApp पर शेयर करें
  • Crawlee वेब स्क्रैपिंग और ब्राउज़र ऑटोमेशन के लिए एक Python लाइब्रेरी है
  • यह भरोसेमंद crawler को तेजी से बनाने में मदद करता है
  • AI, LLM, RAG, GPT के लिए डेटा extraction में इस्तेमाल किया जा सकता है
  • वेबसाइटों से HTML, PDF, JPG, PNG जैसी फ़ाइलें डाउनलोड की जा सकती हैं
  • यह BeautifulSoup, Playwright और शुद्ध HTTP के साथ काम करता है
  • Headful mode और Headless mode दोनों का समर्थन करता है
  • proxy rotation फीचर प्रदान करता है

विशेषताएँ

  • HTTP और Headless browser crawling के लिए एकीकृत interface प्रदान करता है
  • उपलब्ध system resources के आधार पर अपने-आप parallel crawling करता है
  • type hints का उपयोग करने वाले Python में लिखा गया है, जिससे IDE auto-completion बेहतर होती है और bugs कम होते हैं
  • त्रुटि होने या block होने पर automatic retry फीचर
  • एकीकृत proxy rotation और session management फीचर
  • configurable request routing - URL को सीधे उपयुक्त handler तक भेजता है
  • crawl किए जाने वाले URL के लिए persistent queue
  • tabular data और फ़ाइलों दोनों के लिए pluggable storage
  • मज़बूत error handling फीचर

Scrapy से अंतर

  • Crawlee डिफ़ॉल्ट रूप से Headless browser crawling (Playwright) को सपोर्ट करता है
  • सरल और सुरुचिपूर्ण interface - 10 लाइनों से कम code में scraper सेट किया जा सकता है
  • पूर्ण type hint support
  • standard Asyncio पर आधारित

GN⁺ की राय

  • Crawlee वेब स्क्रैपिंग और crawling के लिए एक शक्तिशाली tool लगता है। खासकर Headless browser-आधारित crawling को डिफ़ॉल्ट रूप से सपोर्ट करना इसका बड़ा फ़ायदा है।
  • सरल interface और कम code से crawler बनाया जा सकता है, इसलिए उत्पादकता ऊँची लगती है। साथ ही type hints के सक्रिय उपयोग से development experience बेहतर होता है और त्रुटियों की संभावना कम होती है।
  • अगर किसी project में डेटा extraction के लिए crawling की ज़रूरत है, तो Crawlee पर गंभीरता से विचार किया जा सकता है। खासकर यदि JavaScript rendering की आवश्यकता वाले web pages को crawl करना हो, तो PlaywrightCrawler उपयोगी लग सकता है।
  • हालांकि, यदि बहुत बड़े पैमाने पर crawling चाहिए या real-time responsiveness महत्वपूर्ण है, तो distributed crawling को सपोर्ट करने वाले Scrapy या अन्य tools का उपयोग बेहतर हो सकता है।
  • crawling policy या कानूनी मुद्दों पर भी पर्याप्त समीक्षा करने के बाद ही इसका उपयोग करना उचित होगा।

2 टिप्पणियां

 
yangeok 2024-07-15

मुझे पता था कि यह Node को support करता है, लेकिन लगता है Python को भी support करता है। अगर scraper को लगातार maintain करना हो, तो framework के बारे में गंभीरता से सोचना पड़ेगा हाहा

 
GN⁺ 2024-07-11
Hacker News प्रतिक्रिया
  • मौजूदा फीचर्स का documentation करना महत्वपूर्ण है। वेब scraping platform कितना भी शानदार हो, अगर उसे सिर्फ उसके उपयोगकर्ता ही समझ सकें तो उसका कोई मतलब नहीं है

    • उदाहरण के लिए, tiered_proxy_urls: list[list[str]] | None = None का अर्थ समझना कठिन है
    • उदाहरणों में यह दिखना चाहिए कि .csv, .xlsx tables आदि जैसे सभी data को कैसे खोजकर download किया जाए
    • सिर्फ text लाना और URL खोजना तो कोई भी कर सकता है
    • ऐसे उदाहरण चाहिए जो 1000 अलग-अलग items को parse करें और अलग endpoints के जरिए 3-5 items प्राप्त करें
    • यह स्पष्ट नहीं है कि यह tool एक framework है या automation tool
    • यह जानने की उत्सुकता है कि क्या यह web scraping opt-out protocols (जैसे Robots.txt, HTTP और content tags) को support करता है। खासकर EU के DSM directive के बाद यह और महत्वपूर्ण हो गया है
  • Apify/Crawlee का धन्यवाद। लंबे समय से Node.js उपयोगकर्ता होने के नाते, यह library सबसे अच्छा काम करती रही है

  • किसी project के लिए stack खोजते समय मुझे Crawlee मिला। मैं Python library चाहता था, लेकिन मैंने Typescript में Crawlee का उपयोग करके एक हफ्ते में project पूरा कर लिया

    • API अब तक इस्तेमाल किए गए किसी भी Python scraping API से कहीं बेहतर है
    • Playwright के साथ integration की वजह से programming experience बहुत सुविधाजनक हो जाता है
    • frontend-rendered websites और modified XHR responses को capture करने का काम अच्छी तरह करता है
    • आगे scale करने के लिए Apify platform का उपयोग करने की योजना है
  • यह Scrapy से कैसे अलग है, यह जानने की उत्सुकता है

  • यह जानने की उत्सुकता है कि किसी दूसरी library से switch करने की वजह क्या होगी। मैंने अपना खुद का crawler बनाया है, लेकिन इसमें कुछ खास अनोखा नहीं दिखा

  • modern Python code अच्छा दिखता है

    • example code में const data = await crawler.get_data() Javascript जैसा दिखता है। लगता है underscore छूट गया है
  • सुझाव है कि test cases से और code snippets लेकर उन्हें documentation examples में शामिल किया जाए। अच्छा काम है

  • scraping tools हमेशा स्वागतयोग्य होते हैं। इसे किसी personal project में आज़माने वाला हूँ। AI की वजह से आज scraping कुछ-कुछ gold rush के दौर में फावड़े बेचने जैसा है