Pobranie danych z HTML'a online

0

Witam,

Chcę napisać prosty programik pobierający i obrabiający pewne dane ze strony. Interesujące mnie dane są w takim oto divie:

<div class="box-shiny-alt">
       <div style="display: flex">
            <div class="half" style="font-size: 0.8em;width: 33%;">4 months ago</div>
            <div class="half" style="font-size: 0.8em;text-align: center;width: 28%;">Best of 3</div>
            <div class="half" style="font-size: 0.8em;text-align: right;width: 33%;">23:00 CET</div>
        </div>
	  <a >
      <span style="width: 45%; float: left; text-align: right">
      <div class="team" style="float: right; margin-left: 10%; background: url('http://cdn.csgolounge.com/img/teams/LDLC.jpg?10')"></div>
      <b>LDLC</b><br><i>30%</i>      </span>
    </a>
    <span style="width: 10%; float: left; text-align: center; margin-top: 0.6em">vs</span>
    <a class="active">
      <span style="width: 45%; float: left; text-align: left">
      <div class="team" style="float: left; margin-right: 10%; background: url('http://cdn.csgolounge.com/img/teams/Na\'Vi.jpg?10')"></div>
      <b>Na'Vi (win)</b><br><i>70%</i>      </span>
    </a>
        
        <div class="full">
                Potential reward:<br>
                <div class="half">
<div style="float: left; margin: 0.25em 2%;">Value<br>2.32 for 1<br><span id="teamA">0</span> for <span class="yourVal">0</span></div>                </div>
                <div class="half">
<div style="float: right; margin: 0.25em 2%;">Value<br>0.05 to 0.41 for 1<br><span id="teamB">0</span> for <span class="yourVal">0</span></div>                </div>
        </div> 

Dane o które mi chodzi to te 2 linijki:

 <b>LDLC</b><br><i>30%</i>

oraz:

 <b>Na'Vi (win)</b><br><i>70%</i> 

Samego diva klasy "box-shiny-alt" potrafię pobrać, niestety nie mam zielonego pojęcia jak dobrać się do tych danych o które mi chodzi. Tu: http://www.codeproject.com/Tips/804660/How-to-Parse-Html-using-csharp jest niby napisane jak pobierać takie dane, ale tam gość leci po atrybutach a ja muszę pobrać dane ze znaczników <b> i <i>. Jakieś pomysły?

0

Ja bym wykorzystal http://htmlagilitypack.codeplex.com/

Ewentualnie w ramach samodoskonalenia mozesz sobie sam napisac taki parser, ktory pobierze zawartosci wszystkich elementow o podanych typach i zwroci np kolekcje stringow :) Ale to w celach czysto akademickich, nie ma sensu pisac czegos co juz jest napisane i dziala ok

0

@FakeAccount Właśnie z tego korzystałem, niestety kompletnie nie znając HTML'a nie było to takie łatwe :)
W końcu jakoś mi się udało, wystarczyło pobrać wartość InnerText z tego mojego diva. Teraz tylko odpowiednia obróbka Stringa i będzie OK :)

Aha, chciałbym jeszcze dopytać: czy jeśli wyślę naraz(po kolei) np. 2000 zapytań pod domenę to nie dostanę jakiegoś bloka z uwagi na spam i automatyzm zapytań?

0
Endrew napisał(a):

Aha, chciałbym jeszcze dopytać: czy jeśli wyślę naraz(po kolei) np. 2000 zapytań pod domenę to nie dostanę jakiegoś bloka z uwagi na spam i automatyzm zapytań?

To raczej zalezy od konkretnego serwera. Ale po co mialbys te 2000 zapytan wysylac? Nie mozna raz wyslac, zapisac sobie zrodlo strony i na nim juz operaowac?

0
FakeAccount napisał(a):

To raczej zalezy od konkretnego serwera. Ale po co mialbys te 2000 zapytan wysylac? Nie mozna raz wyslac, zapisac sobie zrodlo strony i na nim juz operaowac?

Strona z której chcę pobierać dane ma adres w formacie:http://csgolounge.com/match?m=x
gdzie x jest liczbą od 1 do ~1700, więc żeby pobrać wszystkie dane muszę chyba po kolei odwiedzić wszystkie te strony. Czy może się mylę i można to jakoś obejść? Oczywiście ten spam miałby miejsce tylko za 1-wszym odpaleniem programu, za każdym kolejnym razem odczytywałbym tylko nowe dane.

0

Pytałeś autora strony czy nie byłby w stanie udostępnić ci jakiegoś prostego api do tego co potrzebujesz? Ten miszmasz kodu html i css jest koszmarny.

Chyba, że to co piszesz to tylko sztuka dla sztuki ;)

0
adruab napisał(a):

Pytałeś autora strony czy nie byłby w stanie udostępnić ci jakiegoś prostego api do tego co potrzebujesz?

Nie, ale jestem pewien że nawet nie mam co liczyć na odpowiedź. Najwyżej zrobię to ręcznie w małych krokach :)

adruab napisał(a):

Ten miszmasz kodu html i css jest koszmarny.

Możliwe, nie znam się. Fakt faktem, że kasę gość trzepie z tej strony bardzo ładną afaik :)

adruab napisał(a):

Chyba, że to co piszesz to tylko sztuka dla sztuki ;)

Trochę tak, trochę nie

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