У меня есть приложение C# Windows Phone 8.1, которое я создаю. Часть приложения должна идти и искать информацию на определенной веб-странице. Одно из полей, которые мне нужно это URL, который можно найти на некоторых элементов на странице, но я нахожу, что URL в формате относительного стиляC# web scraper перейти к aspx link
FullArticle.aspx?a=323495
Я интересно, если есть способ в C#, используя HtmlAgilityPack, HttpWebRequest и т. д., чтобы найти ссылку на фактическую страницу. Ниже приведен фрагмент кода.
private static TileUpdate processSingleNewsItem(HtmlNode newsItemNode)
{
Debug.WriteLine("");
var articleImage = getArticleImage(getNode(newsItemNode, "div", "nw-container-panel-articleimage"));
var articleDate = getArticleDate(getNode(newsItemNode, "div", "nw-container-panel-articledate"));
var articleSummary = getArticleSummary(getNode(newsItemNode, "div", "nw-container-panel-textarea"));
var articleUrl = getArticleUrl(getNode(newsItemNode, "div", "nw-container-panel-articleimage"));
return new TileUpdate{
Date = articleDate,
Headline = articleSummary,
ImagePath = articleImage,
Url = articleUrl
};
}
private static string getArticleUrl(HtmlNode parentNode)
{
var imageNode = parentNode.Descendants("a").FirstOrDefault();
Debug.WriteLine(imageNode.GetAttributeValue("href", null));
return imageNode.GetAttributeValue("href", null);
}
private static HtmlNode getNode(HtmlNode parentNode, string nodeType, string className)
{
var children = parentNode.Elements(nodeType).Where(o => o.Attributes["class"].Value == className);
return children.First();
}
Поблагодарили бы за любые идеи или решения. Ура!
Если ссылки находятся в относительном формате, вы не можете просто добавить текущий URL в качестве префикса, чтобы получить полный URL? Может быть, перейдите в 'Reqest.AbsoluteUri' в' processSingleNewsItem'? – Pogrindis