Affiliate Program

10% commission



User & Pass Auth

IP Allowlist

< Back to Blog
Application of proxy IP: How to use Html Agility Pack for web crawling
by lina

In today's information age, web crawlers have become an important tool for obtaining data. However, in order to prevent malicious crawling, many websites restrict requests from the same IP address. 

To solve this problem, proxy IP becomes an effective solution. This article will introduce how to use proxy IP combined with Html Agility Pack to crawl web pages.

1. Working principle and selection of proxy IP

A proxy IP is a relay server that can receive and forward client requests. By using a proxy IP, the client's request is forwarded to the target server while hiding the client's real IP address. In this way, the target server will not be able to identify the true source of the request, thus protecting the client's privacy and security.

When choosing a proxy IP, you need to consider the following factors:

Anonymity: Choose a proxy IP that hides your real IP address to protect privacy and security.

Speed: Choose a fast and stable proxy IP to improve crawling efficiency.

Region: Based on the geographical location of the target website, select the proxy IP of the corresponding region to improve access speed and simulate real user access.

Security: Ensure the anonymity and security of the proxy IP to avoid being identified by the target website.

If you want to save time on selection, you can use lunaproxy, which can meet the above requirements for selecting a proxy and ensure safety and efficiency.

2. Use Html Agility Pack to crawl web pages

Html Agility Pack is a .NET library for parsing and manipulating HTML documents. It provides convenient methods to extract and manipulate data from HTML pages. Here are the basic steps for web scraping using Html Agility Pack:

Install the Html Agility Pack library: Install the Html Agility Pack library through the NuGet package manager to use it in your code.

Create a WebClient instance and set up a proxy: Use the WebClient class to send HTTP requests and obtain web page content. When creating a WebClient instance, you need to set the proxy server address and port number.

Send an HTTP request and obtain web page content: Use a WebClient instance to send an HTTP request to the target website and obtain the returned HTML content.

Parse HTML content: Use Html Agility Pack to parse HTML content into a DOM tree structure in order to extract the required data.

Extract data: Use XPath or CSS selectors to locate and extract the required data. Html Agility Pack supports XPath expressions to query and extract HTML elements.

Process data: Process, store or further analyze the extracted data.

Close the WebClient instance: After completing the crawl, close the WebClient instance to release resources.

The following is a simple sample code that demonstrates how to use Html Agility Pack combined with proxy IP to crawl web pages:


using System;

using System.Net;

using System.IO;

using HtmlAgilityPack;


class Program


     static void Main(string[] args)


         //Set the proxy server address and port number

         var proxyAddress = new Uri("http://your_proxy_server:port");

         var webClient = new WebClient();

         webClient.Proxy = new WebProxy(proxyAddress);




             //Send HTTP request and obtain web page content

             var response = webClient.DownloadString("");

             var htmlDoc = new HtmlDocument();



             // Parse HTML content and extract data

             var titleNode = htmlDoc.DocumentNode.SelectSingleNode("//title"); // Use XPath to query the title element

             if (titleNode != null)


                 Console.WriteLine("Title: " + titleNode.InnerText); // Output the title content



         catch (WebException ex)


             Console.WriteLine("WebException: " + ex.Message); // Handle network exceptions




             webClient.Close(); // Close the WebClient instance to release resources




Please be careful to replace "your_proxy_server" and "port" in the sample code with your actual proxy server address and port number. In addition, depending on the structure and data extraction requirements of the target web page, XPath query statements or other code logic may need to be adjusted.


Proxy IP and Html Agility Pack provide powerful tools for web scraping. By rationally using proxy IPs, we can effectively hide the true identity of the crawler and avoid being identified by the target website. 

The Html Agility Pack provides us with powerful HTML parsing functions, making it easy to extract and operate web page data.

When crawling web pages, we should always abide by laws, regulations and website terms, and respect the rights of others. At the same time, in order to improve efficiency and accuracy, we also need to continuously optimize the code, conduct testing and debugging.

I hope this article will inspire and help you in using proxy IP and Html Agility Pack to crawl web pages, so that you can better use these tools to facilitate work and life.

Contact us with email

[email protected]

Customer Service
Hi there!
We're here to answer your questiona about LunaProxy.

How to use proxy?


Which countries have static proxies?


How to use proxies in third-party tools?


How long does it take to receive the proxy balance or get my new account activated after the payment?


Do you offer payment refunds?

Help Center

Please Contact Customer Service by Email

[email protected]

We will reply you via email within 24h