
Comment fonctionne réellement la bibliothèque AngleSharp ? Saisie de pages web avec C
Les confrères qui se sont engagés dans l'exploration du Web savent que le blocage des adresses IP est un phénomène courant. En ce moment, nous devons offrir notre meilleur -IP proxyLa première chose que nous allons faire aujourd'hui est d'utiliser le service proxy ipipgo avec la bibliothèque C AngleSharp. Aujourd'hui, nous prenons le service proxy ipipgo home, avec la bibliothèque C AngleSharp, pour vous apprendre à jouer dans le code de l'analyse HTML.
Ne soyez pas paresseux dans la préparation de l'environnement
Commencez par installer un paquet NuGet, ouvrez le gestionnaire de paquets de VS et tapez ceci :
Installation-Package AngleSharp
Install-Package AngleSharp.
Il faut se concentrer sur la configuration du proxy, utiliser le proxy HTTP fourni par ipipgo, se souvenir de son formatip:port:compte:mot de passe. Donnez-moi une châtaigne :
var config = Configuration.
.WithRequesters()
.WithDefaultLoader(new LoaderOptions
WithDefaultLoader(new LoaderOptions) {
IsResourceLoadingEnabled = true,
Filter = request =>
{
request.Headers["User-Agent"] = "Mozilla/5.0" ;
request.Headers["User-Agent"] = "Mozilla/5.0" ; return true ;
}
})
.WithProxy(new ProxyOptions
{
new Uri("http://ipipgo-proxy.com:8000"),
Credentials = new NetworkCredential("Your Account", "Password")
}) ;
Analyse de base des trois axes
En supposant que vous souhaitiez saisir les prix d'un site de commerce électronique, examinez d'abord ce code :
var context = BrowsingContext.New(config) ; var document = await context.OpenAsync("Target URL") ; var context = BrowsingContext.
var document = await context.OpenAsync("Target URL") ;
var priceNodes = document.QuerySelectorAll(".price-class") ; var priceNodes = document.
foreach (var node in priceNodes)
{
Console.WriteLine(node.TextContent.Trim()) ; }
}
prendre noteQuerySelectorAllCet outil magique, avec le sélecteur CSS, permet de jouer comme. Lorsque vous rencontrez des pages à chargement dynamique, n'oubliez pas de l'associer à l'outil ipipgoagent de rotationchaque demande concernant une IP de sortie différente.
Guide pratique pour éviter la fosse
Voici un cas réel : un client avec une seule IP pour capturer des données, 10 minutes pour être bloqué. Plus tard, l'utilisation d'ipipgo a été modifiée.Pool d'agents intelligentsconfiguré comme tel :
var proxyList = new List
{
"ip1:port:user:pass",
"ip2:port:user:pass",
//... Récupère la dernière liste de proxy du backend ipipgo
} ;
var randomProxy = proxyList[new Random().Next(proxyList.Count)]; ;
Le point essentiel est queSélection aléatoire des agentsLe taux de réussite est directement tiré vers le haut lorsqu'il est combiné au mécanisme de rappel automatique d'AngleSharp.
Questions fréquemment posées sur le déminage
Q : Que dois-je faire si je ne peux pas me connecter à l'agent ?
R : Vérifiez d'abord si le paquet est valide dans le backend d'ipipgo.Outils de test de connectivité. N'oubliez pas de définir le délai d'attente dans le code :
var requester = new HttpRequester() ;
requester.Timeout = TimeSpan.FromSeconds(15) ;
Q : Vous n'arrivez pas à attraper les éléments de la page ?
R : Dans 80 % des cas, le sélecteur est mal écrit. Utilisez les outils de développement du navigateur pour confirmer le chemin de l'élément. ipipgo'sAgents à forte valeur ajoutéePeut éviter d'être reconnu comme un robot d'exploration par les sites web.
Q : Vous devez gérer le rendu de JavaScript ?
R : AngleSharp lui-même ne supporte pas JS, cette fois vous devez utiliser PuppeteerSharp, mais n'oubliez pas de configurer le proxy ipipgo dans le navigateur headless :
var options = new LaunchOptions
{
Args = new[] { $ "--proxy-server=http://{randomProxy}" }
} ;
Pourquoi ipipgo ?
Si l'on compare les trois fournisseurs en situation réelle, ipipgo l'emporte dans trois domaines :
| norme | Agent général | ipipgo |
|---|---|---|
| réactivité | 200-500ms | 80-120ms |
| taux de disponibilité | 70% ou environ | 99.2% |
| probabilité d'interdiction | 3 à 5 fois par heure | 0-1 fois par jour |
En particulier, leurPool d'agents commerciauxIl permet de lancer plus de 500 connexions en même temps sans décalage et convient aux projets de crawler de niveau entreprise.
Un dernier mot d'avertissement sur l'exploration du webéthique professionnelleVous pouvez contrôler la fréquence des demandes. Contrôlez la fréquence des demandes, ne bloquez pas les serveurs des autres. Utilisez ipipgo.Limiteur de vitesse intelligentIl ajuste automatiquement l'intervalle de demande, ce qui est à la fois efficace et sûr.

