Analiza elementów div za pomocą c#

0

Witam
Czy znacie może sposób na analizę elementów stron za pomocą c# i wyciąganie interesującej mnie treści ?

Na przykład jest strona meczyki.pl i jest tam spis transmisji jakie będą danego dnia a ja chciałbym aby moja aplikacja (np przy uruchomieniu komputera ) pobierała z tej strony informacje na podstawie wcześniejszych kryteriów np ( piłka nożna : mecz Manchester United jego godzina i np spis linków gdzie mogę to obejrzeć ) )
z analizy budowy strony wiem że musiał bym wyszukać element div o id = content w nim div o id=left w nim div class=transmission i tak dalej i na koniec wyciągnąć treść ostatniego diva, tylko nie specjalnie wiem jak się do nich dobrać.

I teraz czy znacie bibliotekę którą mógł bym wykorzystać ewentualnie jakąś książkę która by mi w tym pomogła

Z góry dziękuję za poświęcony czas

0

Jest taka fajna biblioteka - http://htmlagilitypack.codeplex.com/
Na stronie projektu masz dział z przykładami, więc możesz zobaczyć jak to działa.

0

Albo metodą "będę doktorem", tj. ręczne wyciąganie kolejnych divów za pomocą IndexOf, LastIndexOf, SubString itp. z klasy String. Oczywiście najlepiej opakować to potem wszystko w klasy.

0

Na razie z tego Html Html Agility Pack niewiele rozumiem ale coś pokombinuje,
jednak to co napisał AlfaLeporis podsunęło mi pomysł (jeżeli o to ci chodziło to wybacz za nie zrozumienie w pierwszej chwilo :) ), sprawdziłem że wystarczy

  1. wejść na strone
    2)kliknąć prawym-> zapisz jako
  2. następnie ten plik otworzyć notatnikiem
    i mam wszystkie interesujące mnie informacje
    i teraz kolejne pytanie czy da się to zrobić te 3 kroki z poziomu kodu ?
0

Aby pobrać kod strony, wystarczy użyć klasy WebClient, coś w ten deseń:

```csharp WebClient client = new WebClient(); String siteCode = client.DownloadString("adres.strony.pl"); ```
using(WebClient client = new WebClient())
{
    String siteCode = client.DownloadString("adres.strony.pl");
}

EDIT: WebClient znajduje się w przestrzeni nazw System.Net.
EDIT2: Według sugestii ŁF poprawiłem na prawidłową wersję.

0

Założyłem, że masz już pobranego HTMLa :P
Możesz to zrobić w taki sposób

//dodaj using HtmlAgilityPack; dla większej czytelności kodu

HtmlAgilityPack.HtmlWeb web = new HtmlAgilityPack.HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = web.Load("http://www.meczyki.pl"); //teraz możesz parsować dokument za pomocą HtmlAgilePack (poczytaj o XPath)

string str = doc.DocumentNode.InnerHtml; //lub zrzucić to do stringa i parsować go wymienioną metodą 'jestem doktorem' :D

 
0

Jeszcze raz wielkie dzięki za poświęcony czas
teraz wystarczy już tylko kombinować a to lubię :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1