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.
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
{
}
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)
{
}
}
}
}
}