C# में वेब स्क्रैपिंग: 2025 में चरण-दर-चरण ट्यूटोरियल

Aloísio Vítor
Image Processing Expert
23-Jan-2025

वेबसाइटों को स्क्रैप करने, CAPTCHA को हैंडल करने और स्क्रीनशॉट लेने के लिए आपका दोस्ताना गाइड!
C# में वेब स्क्रैपिंग क्यों?

C# केवल विंडोज़ ऐप्स या गेम बनाने के लिए ही नहीं है—यह वेब स्क्रैपिंग के लिए भी एक पावरहाउस है! HtmlAgilityPack, Selenium, और Puppeteer Sharp जैसी लाइब्रेरीज़ के साथ, आप डेटा निकाल सकते हैं, इंटरैक्शन को ऑटोमेट कर सकते हैं, और CAPTCHA को भी हल कर सकते हैं (हाँ, सच में)। इस ट्यूटोरियल में, हम अपने प्लेग्राउंड के रूप में https://www.scrapethissite.com/pages/ का उपयोग करेंगे। आइए शुरू करते हैं!
चरण 1: अपना प्रोजेक्ट सेट अप करना

सबसे पहले, एक नया C# कंसोल ऐप बनाएँ। फिर, ये NuGet पैकेज इंस्टॉल करें:
bash
Install-Package HtmlAgilityPack # HTML पार्सिंग के लिए
Install-Package Selenium.WebDriver # ब्राउज़र ऑटोमेशन के लिए
Install-Package PuppeteerSharp # स्क्रीनशॉट और उन्नत स्क्रैपिंग के लिए
Install-Package Capsolver.SDK # CAPTCHA सॉल्विंग के लिए
उदाहरण 1: बेसिक पेज स्क्रैपिंग
आइए https://www.scrapethissite.com/pages/simple/ से देश का डेटा स्क्रैप करें।
csharp
using HtmlAgilityPack;
using System.Net;
var url = "https://www.scrapethissite.com/pages/simple/";
var client = new WebClient();
client.Headers.Add("User-Agent", "Mozilla/5.0"); // विनम्र बनें!
var html = client.DownloadString(url);
var doc = new HtmlDocument();
doc.LoadHtml(html);
var countries = doc.DocumentNode.SelectNodes("//div[@class='country']");
foreach (var country in countries)
{
var name = country.SelectSingleNode(".//h3").InnerText.Trim();
var capital = country.SelectSingleNode(".//span[@class='country-capital']").InnerText.Trim();
Console.WriteLine($"देश: {name}, राजधानी: {capital}");
}
यह सभी देशों और उनकी राजधानियों को प्रिंट करता है। सरल, है ना?
उदाहरण 2: Selenium के साथ जावास्क्रिप्ट को हैंडल करना
कुछ पेजों को एक वास्तविक ब्राउज़र की आवश्यकता होती है। आइए AJAX उदाहरण पृष्ठ को Selenium का उपयोग करके स्क्रैप करें:
csharp
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
var options = new ChromeOptions();
options.AddArgument("--headless"); // बैकग्राउंड में चलाएँ
using var driver = new ChromeDriver(options);
driver.Navigate().GoToUrl("https://www.scrapethissite.com/pages/ajax-javascript/");
var dynamicContent = driver.FindElement(By.CssSelector(".ajax-content")).Text;
Console.WriteLine($"AJAX सामग्री: {dynamicContent}");
उदाहरण 3: Capsolver के साथ CAPTCHA को हल करना
क्या कोई CAPTCHA आपके रास्ते में रुकावट डाल रहा है? ReCaptchaV2 को बायपास करने के लिए Capsolver का उपयोग करें। यहाँ बताया गया है कैसे:
- Capsolver के लिए साइन अप करें, अपनी API कुंजी प्राप्त करें।
- CAPTCHA को हल करने के लिए API का उपयोग करें:
csharp
using System;
using System.Net.Http;
using System.Threading.Tasks;
using System.Text;
using System.Text.Json;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System.Threading;
namespace CapSolverSeleniumExample
{
class Program
{
static async Task Main(string[] args)
{
string token = await GetCaptchaToken();
using var driver = new ChromeDriver();
driver.Navigate().GoToUrl("https://www.example.com");
Thread.Sleep(5000);
driver.ExecuteScript("document.getElementById('g-recaptcha-response').innerHTML = arguments[0];", token);
var submitButton = driver.FindElement(By.Id("submit-button"));
submitButton.Click();
Thread.Sleep(5000);
driver.Quit();
}
static async Task<string> GetCaptchaToken()
{
string apiKey = "YOUR_API_KEY";
string siteKey = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_kl-";
string siteUrl = "https://www.example.com";
using var client = new HttpClient();
var payload = new
{
clientKey = apiKey,
task = new
{
type = "ReCaptchaV3TaskProxyLess",
websiteKey = siteKey,
websiteURL = siteUrl,
pageAction = "login"
}
};
var requestContent = new StringContent(JsonSerializer.Serialize(payload), Encoding.UTF8, "application/json");
var createTaskResponse = await client.PostAsync("https://api.capsolver.com/createTask", requestContent);
var createTaskResponseString = await createTaskResponse.Content.ReadAsStringAsync();
using var createTaskJsonDoc = JsonDocument.Parse(createTaskResponseString);
var root = createTaskJsonDoc.RootElement;
if (!root.TryGetProperty("taskId", out var taskIdElement))
{
Console.WriteLine("कार्य बनाने में विफल: " + createTaskResponseString);
return null;
}
int taskId = taskIdElement.GetInt32();
while (true)
{
await Task.Delay(1000);
var resultPayload = new { clientKey = apiKey, taskId = taskId };
var resultContent = new StringContent(JsonSerializer.Serialize(resultPayload), Encoding.UTF8, "application/json");
var getTaskResponse = await client.PostAsync("https://api.capsolver.com/getTaskResult", resultContent);
var getTaskResponseString = await getTaskResponse.Content.ReadAsStringAsync();
using var getTaskJsonDoc = JsonDocument.Parse(getTaskResponseString);
var resultRoot = getTaskJsonDoc.RootElement;
if (resultRoot.TryGetProperty("status", out var statusElement))
{
string status = statusElement.GetString();
if (status == "ready")
{
if (resultRoot.TryGetProperty("solution", out var solutionElement) && solutionElement.TryGetProperty("gRecaptchaResponse", out var tokenElement))
{
return tokenElement.GetString();
}
return null;
}
if (status == "failed" || resultRoot.TryGetProperty("errorId", out _))
{
Console.WriteLine("हल करने में विफल! प्रतिक्रिया: " + getTaskResponseString);
return null;
}
}
}
}
}
}
CAPTCHA से भरे फॉर्म को स्वचालित करने के लिए Selenium के साथ सहज रूप से काम करता है!
उदाहरण 4: Puppeteer Sharp के साथ स्क्रीनशॉट लेना
क्या आप अपने स्क्रैपिंग का दृश्य प्रमाण चाहते हैं? एक स्क्रीनशॉट कैप्चर करें:
csharp
using PuppeteerSharp;
await new BrowserFetcher().DownloadAsync();
using var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
using var page = await browser.NewPageAsync();
await page.GoToAsync("https://www.scrapethissite.com/pages/javascript/");
await page.ScreenshotAsync("screenshot.png");
पृष्ठों के डिबगिंग या संग्रहीकरण के लिए बिल्कुल सही।
2025 वेब स्क्रैपिंग के लिए प्रो टिप्स
- robots.txt का सम्मान करें: पहले https://www.scrapethissite.com/robots.txt देखें।
- रेट लिमिटिंग: सर्वरों को ज़्यादा बोझ से बचाने के लिए
Thread.Sleep(2000)के साथ देरी जोड़ें। - User-Agent रोटेशन: पता लगाने से बचने के लिए वास्तविक ब्राउज़रों की नकल करें।
- त्रुटि हैंडलिंग: नेटवर्क समस्याओं के लिए
try-catchब्लॉक में कोड को लपेटें।
अनुपालन अस्वीकरण: इस ब्लॉग पर प्रदान की गई जानकारी केवल सूचनात्मक उद्देश्यों के लिए है। CapSolver सभी लागू कानूनों और विनियमों का पालन करने के लिए प्रतिबद्ध है। CapSolver नेटवर्क का उपयोग अवैध, धोखाधड़ी या दुरुपयोग करने वाली गतिविधियों के लिए करना सख्त वर्जित है और इसकी जांच की जाएगी। हमारे कैप्चा समाधान उपयोगकर्ता अनुभव को बेहतर बनाने के साथ-साथ सार्वजनिक डेटा क्रॉलिंग के दौरान कैप्चा कठिनाइयों को हल करने में 100% अनुपालन सुनिश्चित करते हैं। हम अपनी सेवाओं के जिम्मेदार उपयोग की प्रोत्साहना करते हैं। अधिक जानकारी के लिए, कृपया हमारी सेवा की शर्तें और गोपनीयता नीति पर जाएं।
अधिक

2026 में IP बैन: उनके काम करने का तरीका और उन्हें पार करने के व्यावहारिक तरीके
2026 में आईपी बैन बायपास करने के तरीके सीखें हमारे विस्तृत गाइड के साथ। आधुनिक आईपी ब्लॉकिंग तकनीकों और रिजिडेंशियल प्रॉक्सी और कैप्चा सॉल्वर्स जैसे व्यावहारिक समाधानों की खोज करें।

Nikolai Smirnov
26-Jan-2026

2026 में उपयोग करने योग्य शीर्ष डेटा निकासी उपकरण (पूर्ण तुलना)
2026 के लिए सबसे अच्छे डेटा निकासी टूल्स खोजें। शीर्ष वेब स्क्रैपिंग, ETL, और AI-संचालित प्लेटफॉर्म की तुलना करें जो आपके डेटा संग्रह और AI वर्कफ़्लो को स्वचालित कर सकें।

Rajinder Singh
21-Jan-2026

कैप्चा कैसे हल करें ब्राउज़र4 में कैपसॉल्वर इंटीग्रेशन के साथ
उच्च बहुतायत ब्राउज़र4 स्वचालन के साथ संयोजित करें, जो बड़े पैमाने पर वेब डेटा निकास में CAPTCHA चुनौतियों का निपटारा करने के लिए CapSolver का उपयोग करता है।

Rajinder Singh
21-Jan-2026

2026 में वेब स्वचालन के लिए सबसे अच्छे 7 AI एजेंट्स उपकरण
2026 में वेब ऑटोमेशन के लिए सबसे अच्छे 7 एआई एजेंट टूल्स की खोज करें। हम CrewAI, MultiOn और अधिक की जांच करते हैं, उन्हें उत्पादन एआई एजेंट के लिए वास्तविक वेब प्रदर्शन और प्रतिरोधकता द्वारा रैंक करते हैं।

Rajinder Singh
20-Jan-2026

असीमित कैप्चा हल करें सबसे अच्छे कैप्चा सॉल्वर के साथ
सीखें अनगिनत कैप्चा को बिना रुके हुए हल करें सबसे अच्छे कैप्चा सॉल्वर के साथ, एक विस्तृत गाइड जो कैप्चा समाधानों के सेटअप और स्वचालन के बारे में है

Rajinder Singh
20-Jan-2026

क्लाउडफ़्लेयर के मानव होने की पुष्टि करते समय बिना फंसे कैसे पास करें
क्योंकि फंसे हुए हैं "verifying you are human" या "Cloudflare Challenge"? सामान्य कारणों के बारे में जानें और स्वचालित प्रणालियों के लिए हर बार सत्यापन पास करने के लिए तकनीकी समाधानों की खोज करें।

Rajinder Singh
20-Jan-2026

