Trivial
^Bartek^: Trivial mam pytanie.
Chciałbym napisać program który pobierałby określone informacje ze strony internetowej.
np wszystko co jest między <li></li>.
Mógłbyś mi powiedzieć jak się to nazywa? Chodzi mi o to ,że nie wiem jak mam znaleźć informacje
na temat takich programów. Innymi słowy Co wpisać w google ?

Resztę już zrozumie.
Proszę o odpowiedź.
1 sty 22:37
Kejt: może wyrażeniami regularnymi? (tak wiem, nie jestem Trivial

)
1 sty 22:54
^Bartek^: Wielki dzięki Kejt za odpowiedź, nie wiedziałem że są tutaj jeszcze inni informatycy .

Tak o to mi chodziło. to pozwala mi na wyciąganie tych rzeczy ze wczytanej strony.
Tylko jak do niej przejść ? Załóżmy ,że strona wykorzystuje metodę GET.
Wystarczy tylko ,że mamy wzór i będziemy do niego podstawiać.
np.
asdf.com/sss/aaa/TUTAJ/strona−1 potem
asdf.com/sss/aaa/TUTAJ/strona−2
tak?
1 sty 23:28
Kejt: w sumie w ostatnim czasie siedziałam głównie w c++ nie w phpie, więc trochę nie moja działka

ale powiedz mi, co dokładnie chcesz tym robić.. wydobywać treść spomiędzy stałych znaczników?
1 sty 23:33
^Bartek^: Dużo Ci nie powiem

Tak chodzi o pobieranie treści spomiędzy stałych znaczników.
Dążę do zrealizowania mojego pomysłu na stronę służącą do...
hmm każde linijka zakończona jest enterem

: <br>
dzięki temu będę mógł określać ilość wierszy w każdym pobranym znaczniku i segregować wyniki.
1 sty 23:58
Kejt: no dobra.. w miarę rozumiem.. a do pliku, czy ma zostawać w bazie?
dziś Ci już pewnie nie odpowiem, bo po Sylwestrze jeszcze trochę nieprzytomna jestem, ale jak
jutro nie zapomnę to coś pomyślę

btw. bardzo to tajemnicze
2 sty 00:04
Kejt: o, jest i Trivial
2 sty 00:04
^Bartek^: Dane będą przechowywane w mySQL .
Mam nadzieje ,że nie zapomnisz

Bez Ciebie nie wiedziałbym od czego zacząć.
2 sty 00:15
asdf: Witam, też nie jestem Trivial, ale spróbuję pomóc

Możesz skorzystać z wyrażeń regularnym
(fajnie wytlumaczone tutaj:
http://cpp0x.pl/artykuly/?id=47 ) jeżeli założysz, że dobrze są dane oraz lista nie jest
zagniezdzona, dwie zmienne:
bool startLi, endLi = false;
jezeli napotkasz na <li>, dajesz startLi na true, do puki nie napotkasz na </li> trzymasz
startLi na true, w tym czasie, jezeli jest aktywne − dodajesz to wszystko do jednego stringa /
rekordu...co tam chcesz.jezeli napotkasz na </li> ustawiasz startLi na false, endLi na true.
mozesz tez rzucic wyjatkiem, tzn. jezeli skonczysz wczytywac dane (koniec pliku lub cokolwiek
tam chcesz...) i jezeli endLi == false && startLi == true to z informacja, ze cos jest nie
dokonczone, lub po prostu nie rzucasz wyjatku, tylko do NIEdokonczonego stringa dodajesz '\0'
i tyle

Tak na szybkiego − nie wiem czy są bledy, nie testowalem. Jak zalezy Ci na dobrym kodzie to
polecam ogarnięcie biblioteki iostream (jezeli zapisujesz do pliku w C++), na internecie jest
pelno dokumentacji na ten temat zapewne, a jezeli masz symfonie C++ Pana Grębosza to marsz do
niej − ostatni rozdział drugiego tomu
2 sty 02:33
asdf: dopiero doczytalem, ze to w PHP ma być, moze sie przyda:
http://pl1.php.net/fread
P.S wyrazenia regularne − mega fajna rzecz, można się dobrze w tym pobawic, ale na przyszlosc:
jezeli tworzysz strony internetowe, jakies logowanie czy cos, to nie ograniczaj sie tylko do
tego, tylko parsuj "czyms jeszcze" lub korzystaj z dobrze ogarniętych wyrazen regularnych bo z
maaaaaalutkiego doswiadczenia wiem, ze znalezienie wyjątku ( tzn. zlamania zalozenia wyrazenia
regularnego ) jest bardzo proste ( nie latwo jest wszystkie przypadki wylapac )
2 sty 02:39
2 sty 02:42
asdf: "hmm każde linijka zakończona jest enterem : <br>
dzięki temu będę mógł określać ilość wierszy w każdym pobranym znaczniku i segregować wyniki."
tutaj już może się przydać polecenie z basha ( system UNIX ), tzn: wc − l ( albo jakis podobny
parametr ) − liczy ilość wierszy występujących w pliku

wtedy nie musisz patrzec do kodu
źródłowego tylko
a jezeli chcesz wiedziec tylko ile jest tych "wierszy" za pomoca PHP to licznik daj:
int cout = 0;
if( znalazles wyrazenie </li> ) count +=1;
2 sty 04:04
Dominik: http://pastebin.com/3w1ABRGb
na szybko napisane. nie sprecyzowales, bartku, jaki jezyk, wiec polecam ci pythona.

w liscie li masz napisy pomiedzy <li>, a </li>, niezaleznie od ilosci wystapien. w przypadku
list zagniezdzonych, skrypt wyciagnie zawartosc najbardziej zewnetrznej, a wewnetrzne
pozostawi bez zmian.
2 sty 11:36
Dominik: ach, niepotrzebnie jest HTMLParser importowany. poza tym, wszystko dziala.
2 sty 11:42
asdf: w bashu to jakieś 4 linijki kodu (tylko juz inne srodowisko..jak nie masz UNIXa to dupa

),
jak Bartek będziesz chciał z tego skorzystać to Ci napisze tego skrypta
2 sty 14:51
^Bartek^: Zaskoczyliście mnie ! Dziękuję wszystkim za odpowiedź.

Muszę to wszystko przeanalizować.

Odniosę się do tego co napisaliście później. Dzisiaj nie wiem czy będę miał czas. Ostatnio
trochę czasu spędzam nad symulatorem fizyki,ale zamierzam skupić się nad tym /\ projektem .
2 sty 18:33
^Bartek^:
from HTMLParser import HTMLParser
import urlib2
class MyHTMLParser(HTMLParser):
def handle
starttag(self, tag, attrs):
print "Poczatek %s" % tag
def handle
endtag(self, tag):
print "Koniec %s tag" % tag
def handle
data(self, data):
print "Dane %s" % data
p = MyHTMLParser()
f = urllib2.urlopen('
http://wikipedia.com')
html = f.read()
p.feed(html)
print p.data
p.close()
3 sty 14:55
^Bartek^: Może mi ktoś pomóc ?
3 sty 14:56
3 sty 15:00
^Bartek^: Halo

!
3 sty 18:38
^Bartek^: Dominik możesz pomóc
3 sty 18:51
3 sty 19:01
^Bartek^: ale dalej coś jest nie tak
3 sty 19:01
^Bartek^: Działa:
code:
from HTMLParser import HTMLParser
import urllib
class MyHTMLParser(HTMLParser):
def handlestarttag(self, tag, attrs):
print "Poczatek %s" % tag
def handleendtag(self, tag):
print "Koniec %s tag" % tag
def handledata(self, data):
print "Dane %s" % data
p = MyHTMLParser()
input = urllib.urlopen('https://matematykaszkolna.pl/forum/229545.html')
html = input.read()
input.close()
p.feed(html)
Dominik daj znać jak będziesz.
3 sty 19:31
^Bartek^: .
3 sty 23:59
^Bartek^: no to spadajcie!
4 sty 00:34
bezendu:
Trochę kultury. Co Ty sobie myślisz, że oni nie mają nic innego do robienia jak tylko forum ? A
po drugie to jest forum matematyczne, więc ciesz się, że i tak otrzymałeś pomoc.
4 sty 00:48
^Bartek^: druga wersja /\
Nie chcecie mi pomóc to znajdę pomoc gdzie indziej.
4 sty 01:01
RS:
4 sty 01:02
asdf: ...Kolego, myślisz, ze codziennie wchodze na forum i czytam je

Rozumiem Twoje
"zdenerwowanie", pewnie sobie pomyslales "pierw tacy eksperci, a jak prosze o pomoc to nic nie
umieja". Moja odpowiedz jest taka: w PHP nie siedze wiec Ci nie pomoge, bedziesz miec problem
w innym jezyku (byle nie niskopoziomowym, albo tych co zaczynają się na P) to pomoge − o ile
bede umiec.
Nie pozdrawiam − za chamstwo, czesc.
4 sty 03:59
4 sty 12:25
Trivial:
A jeżeli robisz dużo takich przekształceń dla strony internetowej, bardzo dobrze sprawdza się
też technologia XSLT. Mimo wielu wad, do pewnych zadań XSLT nadaje się znakomicie (np.
przekształcanie chaotycznego drzewa strony internetowej w prosty XML lub plik tekstowy).
Więcej tutaj:
http://www.w3schools.com/xsl/
Jeżeli nie potrzebujesz tak zaawansowanych przekształceń, najbardziej eleganckim rozwiązaniem
wydaje się użycie xpath. Tutaj gotowe rozwiązanie:
http://ideone.com/eTXx5v
PS: Tak wiem, że jestem Trivial.
4 sty 13:25
^Bartek^ : Przepraszam za moje zachowanie ... Nie mogłem sobie z tym poradzić. Ale teraz wszystko jest
jasne. Znalazłem inne sposoby😊
13 kwi 22:23
^Bartek^ : W ogóle ciekawi mnie co u Dominika jak mu idzie na studiach.
Jak sie miewa asdf? Czy trivial ma juz magistra? Na ile bezendu napisał maturę próbna i na
jakie studia planuje pójść ? Czym zajmuje sie Kejt ? Wszystko nagle umilkło. Czy na studiach
nie na sie juz na nic czasu? Chyba nie wiec odezwijcie sie
13 kwi 22:36
bezendu:
Co tak ciekawi Cię moja osoba ? Matura próbna 86%
13 kwi 22:38
Saizou : czuj się zaszczycony
13 kwi 22:41
bezendu:
Chyba zapadłem w pamięci kilku użytkownikom. Tylko czym
13 kwi 22:49
Saizou : oby czymś dobrym
13 kwi 22:49
bezendu:
Właśnie zastanawiam się czym
13 kwi 22:50
^Bartek^ : Po prostu kiedyś byłem tutaj aktywny rożnie sie nazywalem .
I czytając takie tematy tez sie czegoś uczyłem . Czy o studiach albo o maturze.
Bezendu jest dla mnie wzorem. Wiem ze on osiągnie sukces. Postrzegam go jako człowieka
wytrwałego i wiedzącego czego chce. Który dąży do swojego celu. Staram sie byc taki sam. Nie
wolno sie poddawać. Wystarczy robić cos codziennie nawet małymi krokami to w skali roku
zrobimy wielki postęp.
13 kwi 22:54
bezendu:
Lepiej bierz przykład z Saizou albo Piotra 10 to dalej dojedziesz
13 kwi 22:55
^Bartek^ : Soizu tez znam. Dużo pomagał
13 kwi 22:57
^Bartek^ : Miła eta trudno sobie wszystkich przypomnieć
Basia
13 kwi 23:01
bezendu:
Akurat tych dwóch Pań to nie da się zapomnieć
13 kwi 23:01
asdf: w porządku Bartek, malo odwiedzam forum − jedynie by wejsc => napisac cos (glownie z
informatyki) i tyle...kiedys to sie siedzialem czesciej, pomagalem troche oraz uczylo od
innych −
przede wszystkim. Teraz procz studiow inne rzeczy mam na glowie.
Czy studia zabieraja duzo czasu − zalezy kiedy, jest czasem tak, ze nie ma za wiele do roboty,
przyjda zaliczenia, egzaminy − czlowiek nie wie za co sie zabrac.
Trivial ma
inzyniera, a nie magistra (jeszcze, kwestia czasu

).
14 kwi 02:52