RAG Web Crawler — वेब पेज से Markdown और टेक्स्ट चंक
सार्वजनिक वेब पेजों को साफ़ Markdown, सादे टेक्स्ट और ओवरलैप होने वाले टेक्स्ट चंक में बदलें, हर चंक के साथ स्रोत URL और कैरेक्टर ऑफ़सेट — RAG के लिए एम्बेड करने को तैयार।
मुख्य विशेषताएं
हर पेज से साफ़ Markdown और सादा टेक्स्ट, जिसमें हेडिंग, सूचियाँ, लिंक, कोड ब्लॉक और सरल तालिकाएँ बनी रहती हैं
एम्बेड करने को तैयार चंक, जो एक-दूसरे से ओवरलैप होते हैं और जहाँ तक हो सके पैराग्राफ़ या वाक्य की सीमा पर ख़त्म होते हैं; हर चंक के साथ स्थिर id, स्रोत URL और शीर्षक, और उद्धरण के लिए सटीक कैरेक्टर ऑफ़सेट
पहले मुख्य सामग्री: मेन्यू, हेडर, फ़ुटर और साइडबार हटा दिए जाते हैं, और आप जो भी और बताएँ उसे CSS सेलेक्टर से हटाया जा सकता है
हर साइट के अंदर लिंक फ़ॉलो करना, पाँच स्तर तक, और हर पेज केवल एक बार लाना
URL की जगह सर्च: किसी क्वेरी के हर परिणाम पेज को स्टार्ट URL की तरह क्रॉल किया जाता है (Apify का पेड प्लान ज़रूरी)
डिफ़ॉल्ट रूप से robots.txt का पालन, और एक ही साइट पर अनुरोधों के बीच शालीन अंतराल
पेज अपनी मूल भाषा में रहते हैं — अंग्रेज़ी, चीनी और अन्य — बिना अनुवाद के
हर पेज के लिए स्टेटस और एरर कोड, और हर रन के लिए गिनती और रुकने के कारण वाला सारांश
यूज़ केस
- डॉक्यूमेंटेशन और हेल्प-सेंटर पेजों से RAG चैटबॉट का नॉलेज बेस बनाना
- AI एजेंटों के जवाबों को ताज़ा वेब पेजों पर आधारित करना, जिनका वे हवाला दे सकें
- लेखों की सूची को सिमेंटिक सर्च के लिए एम्बेडिंग में बदलना
- किसी विषय पर सर्च से मिले पेज उनकी मूल भाषा में इकट्ठा करना
- वेक्टर स्टोर को तय समय पर रिफ़्रेश करना, जहाँ पेज न बदलने तक चंक की id भी नहीं बदलती
- Apify के MCP सर्वर के ज़रिए AI एजेंटों को वेब पेज Markdown में देना
इनपुट पैरामीटर
| पैरामीटर | टाइप | आवश्यक | विवरण |
|---|---|---|---|
startUrls | array | वैकल्पिक | क्रॉल करने के लिए सार्वजनिक पेजों के URL, 1,000 तक |
query | string | वैकल्पिक | सर्च क्वेरी, जिसके परिणाम पेज क्रॉल होते हैं (Apify का पेड प्लान ज़रूरी) |
queries | array | वैकल्पिक | और सर्च क्वेरी, जो query के साथ मिला दी जाती हैं |
maxResultsPerQuery | number | वैकल्पिक | हर क्वेरी पर क्रॉल होने वाले सर्च परिणाम (डिफ़ॉल्ट 5, अधिकतम 50) |
maxPages | number | वैकल्पिक | एक रन में शेड्यूल होने वाले अलग-अलग पेजों की अधिकतम संख्या (डिफ़ॉल्ट 20, अधिकतम 1,000) |
maxDepth | number | वैकल्पिक | हर साइट के अंदर लिंक कितने स्तर तक फ़ॉलो हों (डिफ़ॉल्ट 0 = केवल स्टार्ट URL, अधिकतम 5) |
maxConcurrency | number | वैकल्पिक | एक साथ प्रोसेस होने वाले पेज (डिफ़ॉल्ट 3) |
maxSearchRequests | number | वैकल्पिक | हर रन में सर्च अनुरोध, दोबारा कोशिशों सहित (डिफ़ॉल्ट 10, 0 = सर्च नहीं) |
maxFetchRequests | number | वैकल्पिक | हर रन की सभी नेटवर्क कोशिशें, robots.txt और दोबारा कोशिशों सहित (डिफ़ॉल्ट 100) |
requestTimeoutSecs | number | वैकल्पिक | हर अनुरोध का टाइमआउट, सेकंड में (डिफ़ॉल्ट 30) |
maxResponseBytes | number | वैकल्पिक | स्वीकार किया जाने वाला सबसे बड़ा पेज रिस्पॉन्स (डिफ़ॉल्ट 2 MiB) |
maxContentChars | number | वैकल्पिक | हर पेज पर रखा जाने वाला सबसे लंबा टेक्स्ट, कैरेक्टर में (डिफ़ॉल्ट 50,000) |
maxOutputBytes | number | वैकल्पिक | हर रन का कुल आउटपुट (डिफ़ॉल्ट 20 MiB) |
respectRobotsTxt | boolean | वैकल्पिक | पहले हर साइट का robots.txt जाँचें (डिफ़ॉल्ट रूप से चालू) |
onlyMainContent | boolean | वैकल्पिक | पेज की केवल मुख्य सामग्री रखें (डिफ़ॉल्ट रूप से चालू) |
removeSelectors | array | वैकल्पिक | एक्सट्रैक्शन से पहले हटाए जाने वाले एलिमेंट के CSS सेलेक्टर |
chunkSize | number | वैकल्पिक | चंक की लंबाई कैरेक्टर में, टोकन में नहीं (डिफ़ॉल्ट 1,000) |
chunkOverlap | number | वैकल्पिक | लगातार दो चंक में साझा कैरेक्टर (डिफ़ॉल्ट 150) |
आउटपुट उदाहरण
एक असली रन में सेव हुआ एक पेज, टेक्स्ट छोटा किया गया है और उसके पाँच चंक में से एक दिखाया गया है:
1{
2 "schemaVersion": "1.0",
3 "url": "https://www.w3.org/WAI/tutorials/tables/one-header/",
4 "title": "Tables with One Header",
5 "description": "Accessibility resources free online from the international standards organization: W3C Web Accessibility Initiative (WAI).",
6 "languageCode": "en",
7 "canonicalUrl": "https://www.w3.org/WAI/tutorials/tables/one-header/",
8 "markdown": "# Tables with One Header\n\nin [Tables Tutorial](https://www.w3.org/WAI/tutorials/tables/)\n\n## Overview\n\n…",
9 "text": "Tables with One Header\n\nin Tables Tutorial\n\nOverview\n\nThis page covers tables that have one simple header for rows or one simple header for columns. …",
10 "chunks": [
11 {
12 "id": "495cb4e58e13bbf9b5cdbe922f7ea652973ca4dfda61b952aaa021db045a450c",
13 "index": 0,
14 "text": "Tables with One Header\n\nin Tables Tutorial\n\nOverview\n\nThis page covers tables that have one simple header for rows or one simple header for columns. …",
15 "startChar": 0,
16 "endChar": 988,
17 "sourceUrl": "https://www.w3.org/WAI/tutorials/tables/one-header/",
18 "title": "Tables with One Header"
19 }
20 ],
21 "contentTruncated": false,
22 "sources": [],
23 "crawl": {
24 "depth": 0,
25 "httpStatusCode": 200,
26 "loadedAt": "2026-10-19T07:03:53.643Z",
27 "contentType": "text/html",
28 "renderingMode": "http",
29 "extractionMethod": "main"
30 }
31}
चंक के ऑफ़सेट text में Unicode कोड पॉइंट गिनते हैं। हर रन REQUESTS भी लिखता है — हर पेज का एक नतीजा, स्टेटस और एरर कोड के साथ — और OUTPUT भी, यानी रन का सारांश, जिसमें गिनती, रुकने का कारण और चार्ज हुए इवेंट होते हैं।
सुझाव
- अपने वेक्टर स्टोर में
idको रिकॉर्ड ID बनाएँ। पेज और चंक सेटिंग न बदलने तक यह हर रन में एक जैसा रहता है, इसलिए शेड्यूल्ड रन में चंक कोidके हिसाब से लिखने पर पुराने बदल जाते हैं, नई कॉपियाँ नहीं बनतीं। - कुछ पेजों से शुरुआत करें।
maxPagesयाmaxDepthबढ़ाने से पहले अपने टारगेट पेजों का Markdown जाँचें, और संबंधित-लिंक बॉक्स जैसी बची हुई चीज़ेंremoveSelectorsसे हटाएँ। - Dataset के साथ
REQUESTSभी पढ़ें। रन सफल होने पर भी कुछ पेज छोड़े गए या फ़ेल हुए हो सकते हैं, और हर एक का कारण दर्ज होता है।
सामान्य प्रश्न
यह सामान्य वेब स्क्रैपर से कैसे अलग है?
क्या मुझे API key चाहिए?
क्या यह JavaScript रेंडर करता है?
यह कौन-से पेज पढ़ सकता है?
क्या वेबसाइटों को क्रॉल करना अनुमत है?
~/utility में संबंधित
Schema Markup Scraper और SEO ऑडिटर
किसी भी वेबसाइट के लिए संरचित डेटा एक्सट्रैक्ट करें और SEO ऑडिट करें।
खोलेंUniversal Web Printer — URL और HTML को PDF, इमेज में बदलें
URL और HTML को PDF, PNG, JPEG, या WebP में बदलें।
खोलें