.NET 4.x Парсинг сайта - C#
Формулировка задачи:
Подскажите пожалуйста чем лучше всего парсить сайты? что-бы было просто и легко.
Html Agility Pack
xNet
Или еще чем-то.
Нужно пропарсить сайт http://vseazs.com/ именно цены на бензин и имя заправки и закинуть это все в label-ы.
А то не получается =((
Пробывал xNet закидывать в label получается скачал страницу и вывел ее в лейбел показало мне html код а как отсортировать его?.
Решение задачи: «.NET 4.x Парсинг сайта»
textual
Листинг программы
using System;
using System.Threading.Tasks;
using System.Net.Http;
using HtmlAgilityPack;
namespace NameAndPrice
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Please wait...\n");
ShowPrices().Wait();
Console.WriteLine("Done");
// Delay
Console.ReadKey();
}
private static async Task ShowPrices()
{
using (var client = new HttpClient())
{
string html = await client.GetStringAsync("http://vseazs.com/");
HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();
htmlDoc.LoadHtml(html);
try
{
HtmlNodeCollection nodes = htmlDoc.DocumentNode.SelectSingleNode("//div[@id='PricesTable']").SelectSingleNode("//table//tbody").ChildNodes;
foreach (var tr in nodes)
{
var tds = tr.ChildNodes;
if (tds.Count == 4)
{
Console.WriteLine("Название: {0}", tds[0].InnerText);
Console.WriteLine("Цена: {0}", tds[1].InnerText);
}
Console.WriteLine("");
}
//Console.WriteLine(htmlDoc.DocumentNode.SelectSingleNode("//div[@id='4_2']").ChildNodes.Select(x => x.Name).Aggregate((a, b) => a + ", " + b));
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return;
}
}
}
}
}