salut les gens
Comment je peux obtenir le contenu de la page web à l'aide de asp.net ? Je veux enregistrer du code html d'un site web dans la variable de chaîne de comment je peux faire cela ? Je veux dire qu'il est le web site j'ai besoin d'écrire un programme pour obtenir la page et de le stocker dans une variable de chaîne.
Réponses
Trop de publicités?Vous pouvez utiliser le client web
WebClient client = new WebClient();
string downloadString = client.DownloadString("http://www.gooogle.com");
J'ai rencontré des problèmes avec Webclient.Downloadstring avant. 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 vous recommande de ne pas utiliser WebClient.DownloadString
. C'est parce que (au moins dans .NET 3.5) DownloadString n'est pas assez intelligent pour utiliser/suppression de la NOMENCLATURE, doit-il être présent. Cela peut entraîner dans la NOMENCLATURE (
) incorrecte apparaissant comme partie de la chaîne lorsque des données UTF-8 est de retour (au moins sans un charset) - ick!
Au lieu de cela, cette légère variation de fonctionner 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();
}
}