come estrarre il titolo, le immagini e la descrizione di un url usando l'utility HTML Agility

asp.net c# html-agility-pack webforms

Domanda

Voglio estrarre titolo, descrizione e immagini dall'URL utilizzando l' utilità di agilità HTML fino ad ora non sono in grado di trovare un esempio che sia facile da capire e possa aiutarmi a farlo.

Apprezzerei se alcuni mi aiutassero con l'esempio in modo da poter estrarre titolo, descrizione e dare all'utente la scelta di selezionare l'immagine da una serie di immagini (qualcosa di simile a Facebook quando condividiamo un collegamento).

aggiornato:

Ho inserito un'etichetta per titolo, desc e un pulsante, casella di testo sulla pagina .aspx e ho attivato il codice seguente sull'evento clic sul pulsante. ma restituisce null per tutti i valori. potrebbe essere sto facendo qualcosa di sbagliato.

ho usato il seguente URL di esempio http: //edition.cnn.com/2012/10/31/world/asia/india/index.html? hpt = hp_t2

protected void btnGetURLDetails_Click(object sender, EventArgs e)
{
    HtmlDocument doc = new HtmlDocument();
    var response = txtURL.Text;
    doc.LoadHtml(response);

    String title = (from x in doc.DocumentNode.Descendants()
                    where x.Name.ToLower() == "title"
                    select x.InnerText).FirstOrDefault();

    String desc = (from x in doc.DocumentNode.Descendants()
                   where x.Name.ToLower() == "description"
                   select x.InnerText).FirstOrDefault();

    List<String> imgs = (from x in doc.DocumentNode.Descendants()
                         where x.Name.ToLower() == "img"
                         select x.Attributes["src"].Value).ToList<String>();

    lblTitle.Text = title;
    lblDescription.Text = desc;
}

Sopra codice mi ottiene valore nullo per tutte le variabili

se modifico il codice con questo

HtmlDocument doc = new HtmlDocument();
        var url = txtURL.Text;

        var webGet = new HtmlWeb();
         doc = webGet.Load(url);

in questo caso mi danno solo valore per titolo e descrizione è di nuovo nullo

Risposta accettata

protected void btnGetURLDetails_Click(object sender, EventArgs e)
{
    HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(new Uri(txtURL.Text));
    request.Method = WebRequestMethods.Http.Get;

    HttpWebResponse response = (HttpWebResponse)request.GetResponse();

    StreamReader reader = new StreamReader(response.GetResponseStream());

    String responseString = reader.ReadToEnd();

    response.Close();

    HtmlDocument doc = new HtmlDocument();
    doc.LoadHtml(responseString);

    String title = (from x in doc.DocumentNode.Descendants()
                where x.Name.ToLower() == "title"
                select x.InnerText).FirstOrDefault();

    String desc = (from x in doc.DocumentNode.Descendants()
               where x.Name.ToLower() == "meta"
               && x.Attributes["name"] != null
               && x.Attributes["name"].Value.ToLower() == "description"
               select x.Attributes["content"].Value).FirstOrDefault();

    List<String> imgs = (from x in doc.DocumentNode.Descendants()
                     where x.Name.ToLower() == "img"
                     select x.Attributes["src"].Value).ToList<String>();

   lblTitle.Text = title;
   lblDescription.Text = desc;

}



Related

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é