Я пытаюсь, чтобы очистить этот сайт http://www.gotickets.com/calendar.php?Display=Daily&Date=2013-03-12&EventTypeID=2&EventID=0&GenreID=159&VenueID=0&MarketAreaID=0HtmlAgilityPack XPATH выскабливание
Это то, что интересует меня
Данные heirarchly организованы следующим образом
<div class="clr dayItem">
<div class="clr genreHeader">Alternative Rock</div>
<div class="clr genreEvents">
<div class="clr dayEvent">
<a href="/concert/muse/houston_1339329.php" title="7:00 PM Muse - Toyota Center - TX">Muse - Toyota Center - TX - 7:00 PM
</a>
</div>
<div class="clr dayEvent">
<a href="/concert/matchbox_20/pooler_1347335.php" title="7:30 PM Matchbox 20 - Johnny Mercer Theatre">Matchbox 20 - Johnny Mercer Theatre - 7:30 PM
</a>
</div>
etc...
</div>
</div>
Так в основном страница разделена на в двух колонках каждая колонка имеет DayItems , которые включают в себя жанр и деньСобытия с hrefs
Я пытался получить данные, но я новичок в XPath, и не было выскабливание с Regex до сегодняшнего дня
регулярное выражение становится громоздким и слишком сложным, поэтому я выбрала XPATH
, чтобы получить DayItems я использую:
var cl = document.DocumentNode.SelectNodes("//*[contains(concat(' ', normalize-space(@class), ' '), ' dayItem ')]");
foreach (var item in cl.Where(x=> x.Attributes.Any(p=>p.Value == "clr dayItem" && p.OriginalName=="class")))
{
/// THIS LINE FAILS
var genre = item.SelectSingleNode("//.[contains(concat(' ', normalize-space(@class), ' '), ' genre ')]");
Console.WriteLine(item.Name);
foreach (var attr in item.Attributes.Select(x => x.OriginalName + ".." + x.Value))
{
Console.WriteLine(attr);
}
}
Так что же вам нужно именно? содержание всех элементов A в элементах дня? –
Мне нужны все данные о событиях, поэтому я могу создать файл csv, чтобы перевернуть . Я приложил рабочий образец, но я по-прежнему буду благодарен за возможность узнать, как это сделать полностью и только в xpath –