Comment puis-je obtenir le contenu de la page Web en utilisant ASP.NET? J'ai besoin d'écrire un programme pour obtenir le code HTML d'une page Web et le stocker dans une variable chaîne.
Vous pouvez utiliser le WebClient
WebClient client = new WebClient();
string downloadString = client.DownloadString("http://www.gooogle.com");
J'ai déjà rencontré des problèmes avec Webclient.Downloadstring. Si vous le faites, vous pouvez essayer ceci:
WebRequest request = WebRequest.Create("http://www.google.com");
WebResponse response = request.GetResponse();
Stream data = response.GetResponseStream();
string html = String.Empty;
using (StreamReader sr = new StreamReader(data))
{
html = sr.ReadToEnd();
}
Je recommande de ne pas utiliser WebClient.DownloadString
. En effet, (au moins dans .NET 3.5) DownloadString n'est pas assez intelligent pour utiliser/supprimer la nomenclature, si elle est présente. Cela peut entraîner la nomenclature (
) n'apparaissant pas correctement dans la chaîne lorsque des données UTF-8 sont renvoyées (au moins sans jeu de caractères) - ick!
Au lieu de cela, cette légère variation fonctionnera correctement avec les nomenclatures:
string ReadTextFromUrl(string url) {
// WebClient is still convenient
// Assume UTF8, but detect BOM - could also honor response charset I suppose
using (var client = new WebClient())
using (var stream = client.OpenRead(url))
using (var textReader = new StreamReader(stream, Encoding.UTF8, true)) {
return textReader.ReadToEnd();
}
}
Webclient client = new Webclient();
string content = client.DownloadString(url);
Passez l'URL de la page à qui vous voulez accéder. Vous pouvez analyser le résultat en utilisant htmlagilitypack.