MCP के माध्यम से ब्राउज़र स्वचालन: स्क्रैपलेस के साथ एक क्लाउड ब्राउज़र चलाएँ
Advanced Bot Mitigation Engineer
सारांश:
- Scrapeless MCP सर्वर 16
browser_*उपकरणों को उपलब्ध कराता है जो एक होस्टेड क्लाउड ब्राउज़र को संचालित करते हैं, ताकि एक स्क्रिप्ट क्लिक, स्क्रॉल, नेविगेट और रेंडर्ड पृष्ठों को पढ़ सके बिना किसी लोकल क्रोमियम के। browser_createएक सत्र आईडी लौटाता है, और हर बाद के कॉल,browser_goto,browser_get_text,browser_close, उसी आईडी को वहन करते हैं ताकि उसी ब्राउज़र पर कार्य किया जा सके।- उपकरण जावास्क्रिप्ट को रेंडर करते हैं: एक क्लाइंट-रेंडर की गई उद्धरण पृष्ठ में नेविगेट करना और इसे वापस पढ़ना 10 रेंडर्ड उद्धरण लौटाता है।
- यह
scrape_markdownका समकक्ष है: उस पृष्ठ के लिए सामग्री उपकरण का उपयोग करें जिसे आप एक कॉल में प्राप्त कर सकते हैं, और जब पृष्ठ को इंटरैक्शन या इंतजार की आवश्यकता हो, तो ब्राउज़र उपकरणों का उपयोग करें। - कोई मॉडल-प्रदाता कुंजी शामिल नहीं है, क्योंकि ब्राउज़र उपकरण सीधे MCP सत्र के माध्यम से कॉल किए जाते हैं।
- Scrapeless मुफ्त योजना पर शुरुआत करें और अपना पहला क्लाउड ब्राउज़र संचालित करें।
कुछ पृष्ठ अपनी सामग्री को एकल अनुरोध में नहीं छोड़ते। डेटा एक क्लिक, स्क्रॉल, या एक स्क्रिप्ट के चलने के इंतजार के बाद दिखाई देता है, और एक बार मेंfetch करने पर किसी भी चीज़ होने से पहले केवल शेल लौटता है। Scrapeless MCP सर्वर इसका जवाब एक सेट ब्राउज़र उपकरणों के साथ देता है जो मॉडल संदर्भ प्रोटोकॉल के माध्यम से वास्तविक क्लाउड ब्राउज़र को संचालित करते हैं, ताकि आपका कोड उच्च-स्तरीय क्रियाएँ कर सके और ब्राउज़र Scrapeless संरचना पर चले।
यह गाइड सर्वर से कनेक्ट होती है, ब्राउज़र उपकरणों की सूची बनाती है, और एक सत्र को निर्माण से रेंडर्ड पढ़ने और साफ बंद करने तक चलाती है, जो सभी लाइव सर्वर और लाइव ब्राउज़र के खिलाफ सत्यापित हैं। यहाँ कोई मॉडल लूप में नहीं है, इसलिए यहाँ कुछ भी छूटा नहीं है।
Scrapeless ब्राउज़र उपकरणों का महत्व
Scrapeless MCP सर्वर 21 उपकरण प्रदान करता है, जिनमें से 16 ब्राउज़र नियंत्रण हैं: निर्माण और प्रबंधन, नेविगेशन, क्लिकिंग, टाइपिंग, स्क्रॉलिंग, की प्रेस, स्क्रीनशॉट और इंतजार। ये एक होस्टेड Scrapeless क्लाउड ब्राउज़र को संचालित करते हैं, जो स्थानीय स्वचालन स्टैक से प्राप्त प्रोग्रामेटिक नियंत्रण के समान है क्रोम देवटूल्स प्रोटोकॉल से, सिवाय इसके कि ब्राउज़र दूरस्थ है और कुछ भी स्थापित करने की आवश्यकता नहीं है। Scrapeless Scraping Browser पोस्ट इस क्लाउड ब्राउज़र और इसके समवर्ती मॉडल को गहराई से कवर करती है।
ये सामग्री उपकरणों के साथ हैं। scrape_markdown एक कॉल में एक पृष्ठ लौटाता है और जब एक fetch काफी होता है तब सही विकल्प है। browser_* उपकरण उन पृष्ठों के लिए हैं जिन्हें एक सत्र की आवश्यकता होती है: इंटरैक्ट, इंतजार करें, फिर पढ़ें।
आवश्यकताएँ
- Python 3.10 या उससे बाद का।
- डैशबोर्ड से एक Scrapeless API कुंजी, जिसे
SCRAPELESS_API_KEYके रूप में एक्सपोर्ट किया गया है। - कोई लोकल ब्राउज़र नहीं। उपकरण Scrapeless पर एक क्लाउड ब्राउज़र को संचालित करते हैं।
स्थापना
MCP क्लाइंट पुस्तकालय स्थापित करें।
bash
pip install mcp
शेल में अपनी Scrapeless कुंजी सेट करें। वास्तविक कुंजी का उपयोग रन टाइम पर करें और प्लेसहोल्डर को अपने स्रोत से बाहर रखें।
bash
export SCRAPELESS_API_KEY="sk_your_key_here"
कनेक्ट करें और ब्राउज़र उपकरणों की सूची बनाएं
सर्वर के लिए एक स्ट्रीम करने योग्य-HTTP कनेक्शन खोलें, सत्र को आरंभ करें, और उपकरणों की सूची बनाएं। browser_ प्रीफिक्स को फ़िल्टर करना क्लाउड ब्राउज़र द्वारा प्रदान की गई इंटरैक्शन शब्दावली को दिखाता है।
python
import asyncio
import os
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
async def main() -> None:
async with streamablehttp_client(
"https://api.scrapeless.com/mcp", headers={"x-api-token": os.environ["SCRAPELESS_API_KEY"]}
) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
names = sorted(tool.name for tool in (await session.list_tools()).tools)
browser_tools = [name for name in names if name.startswith("browser_")]
print("कुल उपकरण:", len(names))
print("ब्राउज़र उपकरण:", len(browser_tools))
print(", ".join(browser_tools))
asyncio.run(main())
सर्वर 21 उपकरणों की रिपोर्ट करता है, जिनमें से 16 ब्राउज़र नियंत्रण होते हैं।
text
कुल उपकरण: 21
ब्राउज़र उपकरण: 16
browser_click, browser_close, browser_create, browser_get_html, browser_get_text, browser_go_back, browser_go_forward, browser_goto, browser_press_key, browser_screenshot, browser_scroll, browser_scroll_to, browser_snapshot, browser_type, browser_wait, browser_wait_for
परिवहन और संदेश परत मॉडल संदर्भ प्रोटोकॉल विनिर्देशन का पालन करती है, जो JSON-RPC 2.0 विनिर्देशन पर आधारित है।
एक ब्राउज़र सत्र संचालित करें
ब्राउज़र उपकरण स्थिति-आधारित होते हैं, इसलिए पैटर्न है: बनाना, क्रिया करना, पढ़ना, बंद करना। browser_create अपने टेक्स्ट में एक सत्र आईडी लौटाता है; इसे कैद करें और इसे बाद की प्रत्येक कॉल में पास करें। उदाहरण एक जावास्क्रिप्ट-निर्मित उद्धरण पृष्ठ पर नेविगेट करता है और पुनः जारी किए गए टेक्स्ट को पढ़ता है।
python
import asyncio
import os
import re
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
def text_of(result) -> str:
return "\n".join(block.text for block in result.content if getattr(block, "type", None) == "text")
async def main() -> None:
async with streamablehttp_client(
"https://api.scrapeless.com/mcp", headers={"x-api-token": os.environ["SCRAPELESS_API_KEY"]}
) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
created = text_of(await session.call_tool("browser_create", {}))
session_id = re.search(r"ID:\s*([a-z0-9-]+)", created).group(1)
print("सत्र बनाया:", bool(session_id))
await session.call_tool("browser_goto", {"sessionId": session_id, "url": "https://quotes.toscrape.com/js/"})
text = text_of(await session.call_tool("browser_get_text", {"sessionId": session_id}))
print("उद्धरण पुनः जारी किए गए:", text.count("Tags:"))
print("एक उद्धरण है:", "The world as we have created it" in text)
await session.call_tool("browser_close", {"sessionId": session_id})
print("सत्र बंद किया गया: सही")
asyncio.run(main())
उद्धरण पृष्ठ अपने सामग्री को जावास्क्रिप्ट के माध्यम से बनाता है, और क्लाउड ब्राउज़र इसे चलाता है, इसलिए browser_get_text पुनः जारी किए गए उद्धरण लौटाता है न कि एक खाली ढांचा।
text
सत्र बनाया: सही
उद्धरण पुनः जारी किए गए: 10
एक उद्धरण है: सही
सत्र बंद किया गया: सही
10 पुनः जारी किए गए उद्धरण इस प्रमाण का स्रोत हैं कि ब्राउज़र ने पृष्ठ की जावास्क्रिप्ट को निष्पादित किया; समान URL का साधारण फ़ेच शून्य लौटाता है। यहां से, browser_click, browser_type, और browser_scroll उस पृष्ठ पर कदम बढ़ाते हैं जिसे सामग्री दिखाई देने से पहले इंटरेक्शन की आवश्यकता होती है, और browser_close जब काम समाप्त हो जाता है तो क्लाउड ब्राउज़र को मुक्त करता है।
निष्कर्ष
Scrapeless MCP ब्राउज़र उपकरण एक क्लाउड ब्राउज़र को उच्च-स्तरीय क्रियाओं के सेट में बदल देते हैं जिन्हें कोई भी MCP क्लाइंट कॉल कर सकता है। कनेक्ट करें, 16 ब्राउज़र उपकरणों को सूचीबद्ध करें, एक सत्र बनाएँ, नेविगेट करें, पुनः जारी किए गए टेक्स्ट को पढ़ें, और बंद करें, सभी बिना किसी स्थानीय ब्राउज़र के और बिना लूप में किसी मॉडल के। जब एक कॉल पृष्ठ प्राप्त करने के लिए ज़रूरत हो, तो scrape_markdown की खोज करें, और जब पृष्ठ को इसके सामग्री को छोड़ने के लिए एक सत्र की आवश्यकता हो, तो ब्राउज़र उपकरणों का उपयोग करें। ऊपर दिए गए स्क्रिप्ट से शुरू करें और अपने लक्ष्य के लिए आवश्यक क्लिक, टाइप, और स्क्रॉल्स जोड़ें।
एक मुक्त Scrapeless खाता बनाएँ एक API कुंजी प्राप्त करने के लिए, और जब आप एक आवर्ती कार्य की योजना बनाते हैं तो Scrapeless मूल्य निर्धारण की जांच करें।
सामान्य प्रश्न
प्रश्न: क्या Scrapeless MCP ब्राउज़र उपकरणों के लिए एक स्थानीय ब्राउज़र की आवश्यकता है?
नहीं। browser_* उपकरण Scrapeless पर एक होस्टेड क्लाउड ब्राउज़र को चलाते हैं, इसलिए एक स्क्रिप्ट वास्तविक ब्राउज़र पर नियंत्रण रखती है बिना किसी स्थानीय क्रोमियम इंस्टॉलेशन के। यह स्थानीय ऑटोमेशन स्टैक से भिन्नता है: ब्राउज़र दूर से चलता है और आप MCP सत्र के माध्यम से क्रियाएँ जारी करते हैं।
प्रश्न: ब्राउज़र उपकरण कॉल के बीच स्थिति कैसे बनाए रखते हैं?
browser_create एक सत्र आईडी लौटाता है, और प्रत्येक बाद की कॉल उस आईडी को अपने sessionId तर्क में पास करती है। आईडी browser_goto, browser_get_text, और इंटरेक्शन उपकरणों को उसी ब्राउज़र से जोड़ती है, जिससे एक बहु-चरण प्रवाह एक ही पृष्ठ पर कार्य करता है न कि प्रत्येक कॉल पर फिर से शुरू करना।
प्रश्न: यह scrape_markdown से कैसे भिन्न है?
scrape_markdown एक ही कॉल में एक पृष्ठ प्राप्त और लौटाता है, जो तब आदर्श होता है जब सामग्री पढ़ने के लिए वहाँ हो। ब्राउज़र उपकरण उन पृष्ठों के लिए एक स्थिति वाला सत्र खोलते हैं जिन्हें क्लिक, टाइपिंग, स्क्रॉलिंग, या सामग्री मौजूद होने से पहले एक प्रतीक्षा की आवश्यकता होती है, और वे पुनः जारी किया गया परिणाम लौटाते हैं जिसे सामग्री उपकरण उन पृष्ठों पर नहीं पहुँच सकता।
प्रश्न: क्या ब्राउज़र उपकरण जावास्क्रिप्ट को रेंडर करते हैं?
हाँ। क्लाउड ब्राउज़र पृष्ठ की स्क्रिप्ट को निष्पादित करता है, इसलिए एक क्लाइंट-निर्मित पृष्ठ पर नेविगेट करना और browser_get_text को कॉल करना पुनः जारी की गई सामग्री लौटाता है, जो सत्यापित रन में एक जावास्क्रिप्ट उद्धरण पृष्ठ से 10 उद्धरण थे। समान पृष्ठ का साधारण फ़ेच उनमें से कोई भी नहीं लौटाता।
प्रश्न: कौन से ब्राउज़र उपकरण उपलब्ध हैं?
सर्वर 16 उपकरणों का खुलासा करता है: browser_create, browser_close, browser_goto, browser_go_back, browser_go_forward, browser_get_text, browser_get_html, browser_click, browser_type, browser_press_key, browser_scroll, browser_scroll_to, browser_screenshot, browser_snapshot, browser_wait, और browser_wait_for। ये एक साथ नेविगेशन, इंटरेक्शन, प्रतीक्षा, और पढ़ाई को कवर करते हैं।
प्रश्न: क्या मुझे ब्राउज़र उपकरणों का उपयोग करने के लिए एक मॉडल-प्रदाता कुंजी की आवश्यकता है?
नहीं। ब्राउज़र टूल सीधे MCP सत्र के माध्यम से केवल Scrapeless API कुंजी के साथ बुलाए जाते हैं, क्योंकि यह तय करने के लिए कोई मॉडल नहीं है कि किस टूल को बुलाया जाए। एक मॉडल-प्रदाता कुंजी केवल तभी मायने रखेगी जब आप इन टूल्स को किसी एजेंट ढांचे को सौंपेंगे और एक मॉडल को उन्हें संचालित करने देंगे।
स्क्रैपलेस में, हम केवल सार्वजनिक रूप से उपलब्ध डेटा का उपयोग करते हैं, जबकि लागू कानूनों, विनियमों और वेबसाइट गोपनीयता नीतियों का सख्ती से अनुपालन करते हैं। इस ब्लॉग में सामग्री केवल प्रदर्शन उद्देश्यों के लिए है और इसमें कोई अवैध या उल्लंघन करने वाली गतिविधियों को शामिल नहीं किया गया है। हम इस ब्लॉग या तृतीय-पक्ष लिंक से जानकारी के उपयोग के लिए सभी देयता को कोई गारंटी नहीं देते हैं और सभी देयता का खुलासा करते हैं। किसी भी स्क्रैपिंग गतिविधियों में संलग्न होने से पहले, अपने कानूनी सलाहकार से परामर्श करें और लक्ष्य वेबसाइट की सेवा की शर्तों की समीक्षा करें या आवश्यक अनुमतियाँ प्राप्त करें।



