Come raschiare il file xml usando htmlagilitypack

asp.net c# html-agility-pack screen-scraping

Domanda

Ho bisogno di raschiare un file xml da http://feeds.feedburner.com/Torrentfreak per i suoi link e la descrizione.

Ho usato questo codice:

    var webGet = new HtmlWeb();
                var document = webGet.Load("http://feeds.feedburner.com/TechCrunch");
    var TechCrunch = from info in document.DocumentNode.SelectNodes("//channel")
                                 from link in info.SelectNodes("//guid[@isPermaLink='false']")
                                 from content in info.SelectNodes("//description")
     select new
                                 {
                                     LinkURL = info.InnerText,
                                     Content = content.InnerText,

                                 };
lvLinks.DataSource = TechCrunch;
            lvLinks.DataBind(); 

Ho usato questo controllo di visualizzazione lista per mostrare sulla pagina asp.net. utilizzando

    var webGet = new HtmlWeb();
                var document = webGet.Load("http://feeds.feedburner.com/TechCrunch");
    var TechCrunch = from info in document.DocumentNode.SelectNodes("//channel")
                                 from link in info.SelectNodes("//guid[@isPermaLink='false']")
                                 from content in info.SelectNodes("//description")
     select new
                                 {
                                     LinkURL = info.InnerText,
                                     Content = content.InnerText,

                                 };
lvLinks.DataSource = TechCrunch;
            lvLinks.DataBind(); 

Ma il suo errore di visualizzazione

Il valore non può essere nullo. Nome del parametro: source

qual è il problema ? Ed è possibile analizzare (recuperare) i dati dei nodi xml usando HtmlAgilityPack? Si prega di suggerire Grazie

Risposta accettata

Prova a utilizzare la libreria RSS invece di HtmlAgilityPack:

Ecco alcuni link che potrebbero aiutarti:


Risposta popolare

L'errore dice che il valore è nullo. Quindi c'è troppo probabilmente

select new
         {
                LinkURL = info.InnerText??string.Empty,
                Content = content.InnerText??string.Empty,

         };

o nell'asx. Penso che dovrebbe essere meno nella stringa in questo modo:

select new
         {
                LinkURL = info.InnerText??string.Empty,
                Content = content.InnerText??string.Empty,

         };



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché