C sharp - Inconveniente al obtener datos de una web "WebBrowser"

 
Vista:

Inconveniente al obtener datos de una web "WebBrowser"

Publicado por JGMaster (1 intervención) el 04/06/2017 20:50:12
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 recivida.

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