Forum elektroda.pl

Regulamin | Punkty | Dodaj... | Ostatnie | Szukaj | Rejestracja | Zaloguj

Ta strona używa cookie. Dowiedz się więcej o celu ich używania i zmianie ustawień cookie w przeglądarce.
Korzystając ze strony wyrażasz zgodę na używanie cookie, zgodnie z aktualnymi ustawieniami przeglądarki.

VBA Excel - Pobieranie danych tekstowych z sieci WEB


Napisz nowy temat  Temat zablokowany      Strona Główna -> Forum elektroda.pl -> Programowanie Ogólne -> Programowanie Początkujący -> VBA Excel - Pobieranie danych tekstowych z sieci WEB
Autor
Wiadomość
cytrusik
Poziom 2
Poziom 2


Dołączył: 20 Sie 2012
Posty: 3

Post#1 Post autora tematu 20 Sie 2012 19:01   

VBA Excel - Pobieranie danych tekstowych z sieci WEB


Witam,
Potrzebuje pomocy w napisaniu makra które bedzie z konkretnej strony www pobieralo konkretne dane tekstowe. Np. ze strony http://www.tennisexplorer.com wyszukało konkretnego zawodnika i ze strony tegoż zawodnika pobrało i zapisało w Excelu nazwisko i imię oraz np. jego aktualne miejsce w rankingu.
Wielkie dzięki
Powrót do góry
   
Tommy82
Poziom 24
Poziom 24


Dołączył: 22 Lut 2005
Posty: 5120
Miasto: Centrum Dowodzenia Światem

Post#2 20 Sie 2012 19:19   

Re: VBA Excel - Pobieranie danych tekstowych z sieci WEB


Ale z czym masz porblem?

Najpierw musisz spreparować geta na ten URL
a potem zajrzeć do środka i sparsować z response to co Cie interesuje na przykład tabelkę.
Powrót do góry
   
Google


Google Adsense


Post# 20 Sie 2012 19:19   





Powrót do góry
   
cytrusik
Poziom 2
Poziom 2


Dołączył: 20 Sie 2012
Posty: 3

Post#3 Post autora tematu 20 Sie 2012 19:23   

Re: VBA Excel - Pobieranie danych tekstowych z sieci WEB


Chetnie to zrobie tylko nie mam pojecia jak to sie robi
Powrót do góry
   
Google


Google Adsense


Post# 20 Sie 2012 19:23   





Powrót do góry
   
Tommy82
Poziom 24
Poziom 24


Dołączył: 22 Lut 2005
Posty: 5120
Miasto: Centrum Dowodzenia Światem

Post#4 20 Sie 2012 19:36   

Re: VBA Excel - Pobieranie danych tekstowych z sieci WEB


To może powinieneś się zająć czymś prostszym?

Tu masz kod oddający idee
http://stackoverflow.com/questions/2520949/getting-html-source-with-excel-vba
Nie wiem czy działa ale czegoś takiego powinieneś szukać a wręcz sam znaleźć

I teraz będziesz miał HTML w dla tabelki Upcoming mathes

Kod HTML - [rozwiń]
<tr class="one" onmouseout="m_out(this);" onmouseover="m_over(this);" style="">
<td class="time first">20.08. 19:30</td>
<td class="t-name">
<a title="Click for match detail" href="/match-detail/?id=1000452">Lawrence J. - Muresan D.</a>
</td>
<td class="tv"> </td>
<td class="h2hnbg">0-0</td>
<td class="course">1.83</td>
<td class="course">1.83</td>
</tr>
<tr class="two" onmouseout="m_out(this);" onmouseover="m_over(this);" style="">
<td class="time first">20.08. 20:00</td>
<td class="t-name">
<a title="Click for match detail" href="/match-detail/?id=999118">Hantuchova D. - Barthel M.</a>
</td>
<td class="tv"> </td>
<td class="h2hnbg">0-0</td>
<td class="course">2.53</td>
<td class="course">1.50</td>
</tr>


I musisz sobie to wyciągnąć to co Cie interesuje ze źródła strony.
Ale Wg mnie VBA się do tego nie nadaje.
Powrót do góry
   
Google


Google Adsense


Post# 20 Sie 2012 19:36   





Powrót do góry
   
adamas_nt
Poziom 23
Poziom 23


Dołączył: 26 Sty 2008
Posty: 3942
Miasto: Nowy Tomyśl

Post#5 20 Sie 2012 20:45pomocny post - solucja   

Re: VBA Excel - Pobieranie danych tekstowych z sieci WEB


Najprościej zaciągnąć dane kwerendą (jak leci),

VBA Excel - Pobieranie danych tekstowych z sieci WEB

ew. można zoptymalizować, czyt. wyrzucić co niepotrzebne.

Nagraj makro wykonywania w/w czynności, a do wyszukiwania użyj arkuszowych formuł...
Powrót do góry
   
Tommy82
Poziom 24
Poziom 24


Dołączył: 22 Lut 2005
Posty: 5120
Miasto: Centrum Dowodzenia Światem

Post#6 20 Sie 2012 22:12   

Re: VBA Excel - Pobieranie danych tekstowych z sieci WEB


O jeszcze prostsze i elegantsze rozwiązanie.
Powrót do góry
   
cytrusik
Poziom 2
Poziom 2


Dołączył: 20 Sie 2012
Posty: 3

Post#7 Post autora tematu 20 Sie 2012 22:21   

Re: VBA Excel - Pobieranie danych tekstowych z sieci WEB


dzieki :D
Powrót do góry
   
noonka
Poziom 5
Poziom 5


Dołączył: 03 Gru 2013
Posty: 12
Miasto: Poznań

Post#8 03 Gru 2013 12:02   

Re: VBA Excel - Pobieranie danych tekstowych z sieci WEB


witam,
na początku chciałam zaznaczyć, że jestem nowa na forum i początkująca jeśli chodzi o pisanie w VBA, wiec z góry przepraszam, jeśli wybrałam jednak zły wątek lub kod się posypie czy cus;)

Makro, które wykorzystuje musi odwoływać się do strony stooq.plz której pobiera dane dotyczące ostatnich 5 notowań spółek czyli adres www powinien się zmieniać w zależności od spółki i okresu z którego dane są potrzebne np.:
dla porównania oryginalny link:
stooq.pl/q/d/?s=bal&c=0&d1=20131125&d2=20131202
link po przeróbce (działający prawidłowo i przypisany do zmiennej "www"):
Kod Visual Basic - [rozwiń]
www = "stooq.pl/q/d/?s=" & spolka & "&c=0" & "&d1=" & d1 & "&d2=" & d2


poniżej załączam kod korzystający z kwerendy (makro było nagrywane):
Kod Visual Basic - [rozwiń]
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;//stooq.pl/q/d/?s=eur&c=0&d1=20131125&d2=20131202", Destination:= _
Range("K37")) ' tu jest kolumna do której zapisuje pobrane dane
.CommandType = 0
.Name = "?s=eur&c=0&d1=20131125&d2=20131202"
'tu jest nazwa spółki
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 1440
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "29"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
 
 


próbowałam podstawić zmienną "www" w miejsce odnośnika (bezpośrednie umieszczenie "przeformatowanego" adresu wyrzuca błąd), ale program w ogóle tego nie odczytuje. rozszerzenie www o cały fragment czyli razem z "URL;" tez nic nie daje...

martwi mnie również to, że zmodyfikowany adres pojawia się jeszcze przy okazji ".Name".

moje pytanie brzmi: czy można pobrać te dane innym sposobem ale nie korzystając ze źródła strony albo jak można zmienić kod, żeby zadziałało?

z góry dziękuję za pomoc i mam nadzieję, że nie zaplatałam tego bardziej, niż było to konieczne;)

Pozdrawiam:)
Powrót do góry
   
Google


Google Adsense


Post# 03 Gru 2013 12:02   





Powrót do góry
   
szarlich
Poziom 7
Poziom 7


Dołączył: 01 Lut 2013
Posty: 20

Post#9 03 Gru 2013 13:46   

Re: VBA Excel - Pobieranie danych tekstowych z sieci WEB


o to chodzilo?

w komorce j1 mam:
="URL;http://www"&".stooq.pl/q/d/?s="&"bal"&"&c=0"&"&d1="&D1&"&d2="&D2
D1
20131125
D2
20131202

Kod Visual Basic - [rozwiń]
 
With ActiveSheet.QueryTables.Add(Connection:=Range("J1").Text, Destination:=Range("a3"))
' tu jest kolumna do której zapisuje pobrane dane
.Name = "bal"
'tu jest nazwa spólki
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 1440
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "29"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
 



kiedys Adamas mi pomogl z podobnym problemem:
http://www.elektroda.pl/rtvforum/viewtopic.php?t=2487451&highlight=
Powrót do góry
   
noonka
Poziom 5
Poziom 5


Dołączył: 03 Gru 2013
Posty: 12
Miasto: Poznań

Post#10 03 Gru 2013 13:58   

Re: VBA Excel - Pobieranie danych tekstowych z sieci WEB


KURCZe, dzieki:D:D działa idealnie:))

Pozdrawiam:))
Powrót do góry
   
adamas_nt
Poziom 23
Poziom 23


Dołączył: 26 Sty 2008
Posty: 3942
Miasto: Nowy Tomyśl

Post#11 03 Gru 2013 14:28   

Re: VBA Excel - Pobieranie danych tekstowych z sieci WEB


Tam jest ceesfałka. Może
Kod Visual Basic - [rozwiń]
Workbooks.Open "http://stooq.pl/q/d/l/?s=bal&d1=20130125&d2=20131202&i=d"
Jesli nazwy jakieś tam (nie wnikałem) pasują z nazwami plików .csv...
Powrót do góry
   
noonka
Poziom 5
Poziom 5


Dołączył: 03 Gru 2013
Posty: 12
Miasto: Poznań

Post#12 03 Gru 2013 18:24   

Re: VBA Excel - Pobieranie danych tekstowych z sieci WEB


Nie korzystam z tych plików csv, które można pobrać, ale dzięki. :)
Powrót do góry
   
Napisz nowy temat  Temat zablokowany      Strona Główna -> Forum elektroda.pl -> Programowanie Ogólne -> Programowanie Początkujący -> VBA Excel - Pobieranie danych tekstowych z sieci WEB
Strona 1 z 1
Podobne tematy
Excel (VBA) - Excel tworzenie bazy danych (1)
[vba][excel] - Zapis pliku txt na serwerze web (8)
[VBA Excel] - Plik inwentaryzacyjny - operacje na polach tekstowych (3)
[C++] Pobieranie danych tekstowych do tablicy. (1)
[Excel] [VBA] Pobieranie danych z kolejnych wystandaryzowanych plików (2)
VBA Excel - pobieranie danych do textbox (1)
Pobieranie danych z formularza [VBA Excel] (13)
VBA Excel - Automatyczne aktualizowanie danych Excel (3)
VBA - pobieranie danych ze strony internetowej (5)


Administrator || Moderatorzy || Regulamin forum || Regulamin ogólny || Informacja o cookies || Reklama || Kontakt

Page generation time: 1.69 seconds

elektroda.pl temat RSS