• Viernes 29 de Marzo de 2024, 00:13

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - JGMaster

Páginas: [1]
1
C# / Inconveniente al obtener datos de una web "WebBrowser"
« en: Domingo 4 de Junio de 2017, 20:04 »
Muy buen dia a todos, soy nuevo en el foro y vengo hoy a solicitar su ayuda con un pequeño inconveniente que me ha surgido con una app que estoy creando esta extrae informacion de una web estoy usando la libreria HtmlAgilityPack para obtener el documento html y poder acceder a sus componentes pero solo puedo acceder a algunas partes a otras no. Ej. con esto puedo acceder a la descripcion, titulo,fecha de publicacion, nombre del canal, pero no la lista de videos relacionados, me dice que el XPath es incorrecto, pero lo estoy copiando directamente de la pagina y no tengo idea del porque pasa esto,  vengo aca para ver si alguno tiene idea de como resolver este detalle, cualquier ayuda es bien recibida.

Código: C#
  1.  
  2. using System;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.Data;
  6. using System.Drawing;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. using System.Windows.Forms;
  11. using HtmlAgilityPack;
  12. using System.Net;
  13.  
  14. namespace datos
  15. {
  16.     public partial class info : Form
  17.     {
  18.         public String html;
  19.         public Uri url;
  20.         public info()
  21.         {
  22.             InitializeComponent();
  23.            
  24.         }
  25.        
  26.  
  27.  
  28.         private void button1_Click(object sender, EventArgs e)
  29.         {   /*
  30.             for (int i = 1; i < 15; i++ )
  31.             {
  32.                 VeriAl("https://www.youtube.com/watch?v=GLsGOz6tKSA", "//*[@id='watch-related']/li[" + i + "]/div[1]/div[1]/a/span[1]", listBox1);
  33.             }*/
  34.  
  35.  
  36.             VeriAl("https://www.youtube.com/watch?v=GLsGOz6tKSA", "//*[@id='watch-related']/li[1]/div[1]/div[1]/a/span[1]", listBox1);
  37.                                                                    //*[@id='watch-related']/li[2]/div[1]/div[1]/a/span[1]
  38.                                                                    //*[@id="watch7-sidebar-modules"]/div[1]/div/div[2]/ul/li/div[1]/a/span[1]
  39.                                                                    
  40.         }
  41.         public void VeriAl(String Url, String XPath, ListBox CikanSonuc)
  42.         {
  43.             try
  44.             {  
  45.                 url = new Uri(Url);
  46.             }
  47.             catch (UriFormatException)
  48.             {  
  49.                 if (MessageBox.Show("Url Erroneo", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) == DialogResult.OK)
  50.                 {
  51.  
  52.                 }
  53.  
  54.             }
  55.             catch (ArgumentNullException)
  56.             {
  57.                 if (MessageBox.Show("Url Erroneo", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) == DialogResult.OK)
  58.                 {
  59.  
  60.                 }
  61.             }
  62.  
  63.             WebClient client = new WebClient();
  64.             client.Encoding = Encoding.UTF8;
  65.  
  66.             try
  67.             {
  68.                 html = client.DownloadString(url);
  69.            
  70.             }
  71.             catch(WebException)
  72.            
  73.             {
  74.                 if (MessageBox.Show("Url Erroneo", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) == DialogResult.OK)
  75.                 {
  76.  
  77.                 }
  78.             }
  79.  
  80.             HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
  81.             doc.LoadHtml(html);
  82.             try
  83.             {
  84.                 CikanSonuc.Items.Add(doc.DocumentNode.SelectSingleNode(XPath).InnerText);
  85.             }
  86.             catch (NullReferenceException)
  87.             {       //Aca me tira error me dice que XPath es incorrecto.
  88.                 if (MessageBox.Show("XPath Erroneo", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) == DialogResult.OK)
  89.                 {
  90.  
  91.                 }
  92.            
  93.             }
  94.         }
  95.  
  96.        
  97.  
  98.        
  99.     }
  100. }
  101.  
  102.  
  103.  
  104.  

Páginas: [1]