Question

ok Ive a obtenu ce code:

public static string ScreenScrape(string url)
    {
        System.Net.WebRequest request = System.Net.WebRequest.Create(url);
        // set properties of the request
        using (System.Net.WebResponse response = request.GetResponse())
        {
            using (System.IO.StreamReader reader = new System.IO.StreamReader(response.GetResponseStream()))
            {
                return reader.ReadToEnd();
            }
        }
    }

Maintenant, je veux faire un filtrage du texte pour obtenir le div class = « ceux de commentaire » est-il une autre option autre que d'utiliser des expressions régulières? ou est-ce la seule façon?

Merci

Était-ce utile?

La solution

Vous devez utiliser le HTML Agility pack .

Par exemple:

var doc = new HtmlWeb().Load(url);
var comments = doc.Descendants("div")
                  .Where(div => div.GetAttributeValue("class", "") == "comment");

Notez que cela ne trouvera pas <div class="OtherClass comment">; si vous cherchez, vous pouvez appeler IndexOf.

Autres conseils

HtmlAgilityPack est juste un paquet, qui vous permet de manipuler des fichiers html, si vous voulez faire gratter l'écran Sélénium WebDriver avec PhantomJS est une meilleure solution. PhantomJS est un navigateur web sans tête il est donc très rapide. De plus, il a des fonctionnalités beaucoup mieux par rapport à l'agilité pack html. Il y a un href="https://www.udemy.com/scraping-and-data-mining-for-beginners-and-pros/?dtcode=ynF0V6s2kfuM" court cours sur ce sujet.

Vous shoulnd't utiliser des expressions régulières pour analyser HTML - ils sont le mauvais outil pour le travail, comme HTML trop complexe pour les
. Vous devez utiliser un analyseur HTML.
Voir également: Vous recherchez analyseur C # HTML

Vous premier port d'escale devrait être le HTML Agility pack .

Les expressions régulières sont la manière classique pour analyser ce genre d'entrée pour les langues non .NET.

Additionnellement, si vous pouvez normaliser cette une variante XML (à savoir XHTML), vous pouvez utiliser XPath pour interroger et récupérer les nœuds requis.

Ce que vous ne voulez pas faire est de mettre en œuvre votre propre analyseur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top