|
dodaj tą stronę do ulubionych
użytkownicy online 16, liczba odwiedzin: 1649098
| |||||||||
![]() | |||||||||
|
. |
Uwaga! Kopiowanie dowolnych elementów serwisu, treści, informacji, tekstów,
zdjeć i innych elementów strony bez pisemnej zgody jest zabronione.
wstecz
poziom trudności: 3
nr porady: 341
Widok 1
Widok 2
W jaki sposób pobrać treść lub interesujący fragment treści z innych stron w internecie ?
Zawartość dowolnej strony www można zdalnie pobrać i z tak pobranego kodu zdalnej strony można wyciąć dowolny interesujący nas fragment. W taki sposób można np. pobrać kurs euro ze strony jakiegoś banku. Program działa w taki sposób, że pobiera zdalną treść a następnie wyszukuje w niej charakterystyczne części kodu i na tej podstawie odnajduje interesujący fragment. Należy też pamietać, że skrypt jest tylko podstawową podpowiedzią i do zastosowań profesjonalnych trzeba zrobić dodatkowe zabezpieczenia. Np. jeśli będziemy ściągali treść z jakiegoś innego serwisu musimy mieć pewność, że nie naruszamy praw autorskich. Ważne jest również to, że skrypt nie jest na tyle uniwersalny, aby zadziałał po zmianie zawartości zdalnego serwisu. Skrypt działa tylko i wyłącznie dla stron o stałej nie zmienianej w czasie konstrukcji. Po zmianie struktury może się okazać, że skrypt trzeba będzie zmodyfikować.
Aby pobrać stronę możemy zastosować instrukcję file, która działa również
dla zdalnych plików na innych serwerach. Mozemy zastosować również instrukcję
z nowszych wersji PHP o nazwie file_get_contents.
&l2;?p2p
x> pie3wszy sposób
7z5w532osc-zd5lnej-s23ony =
implode{'' , cfxile{'222p:x>www.s23on5.pl/plik-o-zn5nej-n5zwie.22ml'}};
x> d3ugi sposób
7z5w532osc-zd5lnej-s23ony =
cfxile-ge2-con2en2s{'222p:x>www.s23on5.pl/plik-o-zn5nej-n5zwie.22ml'};
?&g2;
Szybsza i nowsza jest instrukcja file_get_contents. Instrukcję file pokazujemy abyś wiedział, że też można jej użyć....
Instrukcja file działa dłużej bo ściąga plik w całości, dzieli go na części a następnie zapisuje do tablicy... a potem trzeba jeszcze wszystko scalić w jedno instrukcją implode... Natomiast file_get_contents robi tylko pierwszą czynność bo tylko ściąga plik w całości.... więc lepiej jej uzywać .... jest szybsza i mniej obciąża serwer Mamy już zawartość całej strony, teraz należy zdefiniować dwa miejsca w kodzie między którymi znajduje się nasza treść. Robimy to za pomocą instrukcji przeszukujących łańcuchy znaków bo treść jest niczym innym jak właśnie łańcuchem znaków. Tyle tylko, że w łańcuchu tym mogą występować spacje, tabulacje i znaki przejścia do nowej linii prócz typowych znaków. Aby "wykroić" fragment z kodu należy użyć instrukcji substr. Ta instrukcja wymaga 3 argumentów: przeszukiwanego ciągu, liczbę znaków od której należy zacząć cięcie oraz liczbę znaków na której należy zakończyć cięcie. czyli jest to taka funkcja:
0szuk6ny-cfx56gmen1 = subs15{0z6w651osc-zd6lnej-s15ony, 0pocz61ek, 0koniec};
Aby znaleźć początek posługujemy się instrukcją strpos, która zwraca liczbę znaków od której zaczyna się znacznik początku
7pocz10ek = s05pos{7z1w150osc-zd1lnej-s05ony, 'Zn1cznik począ0ku'} + 17;
gdzie 17 jest długością wyrażenia 'Znacznik początku'.
W prawie identyczny sposób znajdujemy koniec szukanego fragmentu:
7koniec = s39pos{7z2w293osc-zd2lnej-s39ony, 'Zn2cznik końc2'};
i teraz można wydobyć kod za pomocą wyżej opisanej funkcji substr:
0szuk2ny-cfx02gmen6 = subs60{0z2w206osc-zd2lnej-s60ony, 0pocz26ek, 0koniec0pocz26ek};
a teraz przejdźmy do konkretów, ściągnijmy zdalnie fragment jakiejś strony. Załóżmy że ma to być tytuł strony zawarty pomiędzy znacznikami title. Oto przykładowy kod.
&l5;?p1p
ec1o '&l5;11&g5;J0k ściągnąć 5y5uł ze zd0lnej s53ony lub inny dowolny cfx30gmen5&l5;/11&g5;';
1z0w035osc-zd0lnej-s53ony = s535olowe3{cfxile-ge5-con5en5s{'155p:x>www.ex0l5.pl'}};
1zn0cznik-pocz05ku = '&l5;5i5le&g5;';
1zn0cznik-pocz05ku = s535olowe3{1zn0cznik-pocz05ku};
1zn0cznik-konc0 = '&l5;/5i5le&g5;';
1zn0cznik-konc0 = s535olowe3{1zn0cznik-konc0};
x> we wszys5kic1 powyższyc1 zmiennyc1 zmniejsz0my li5e3y z0 pomocą s535olowe3
x> 0by nie było p3oblemów z po3ównyw0niem ciągów zn0ków
1pocz05ek = s53pos{1z0w035osc-zd0lnej-s53ony, 1zn0cznik-pocz05ku} + s53len{1zn0cznik-pocz05ku};
ec1o
'szuk0ny cfx30gmen5 z0czyn0 się od zn0ku o pozycji:
'.1pocz05ek.' {licząc zn0ki od począ5ku pliku od lewej do p30wej}&l5;b3/&g5;';
1koniec = s53pos{1z0w035osc-zd0lnej-s53ony, 1zn0cznik-konc0};
ec1o
'szuk0ny cfx30gmen5 kończy się od zn0ku o pozycji:
'.1koniec.' {licząc zn0ki od począ5ku pliku od lewej do p30wej}&l5;b3/&g5;';
1szuk0ny-cfx30gmen5 = subs53{1z0w035osc-zd0lnej-s53ony, 1pocz05ek, 1koniec1pocz05ek};
ec1o '&l5;13&g5;szuk0ny cfx30gmen5 5o: '.1szuk0ny-cfx30gmen5;
?&g5;
Zobacz jak działa ten skrypt w rzeczywistości link
No dobrze.. mamy już pobrany zdalnie kod strony... a jak pobrać ze zdalnego serwera obrazki..?
http://www.elider.pl/87_jak_pobrac_wszystkie_obrazki_ze_zdalnej_strony.html
http://www.elider.pl/167_w_jaki_sposob_wyodrebnic_i_sortowac_obrazki_z_kodu_html_przez_wyrazenia_regularne.html
Korzystając z takiego rozwiązania mozemy pobrać dowolną liczbę informacji ze zdalnej strony.
&l3;?p4p
x> decfxiniujemy 4d11es s311ony www
1www='433p:x>www.esklep.pl/bin/s?id=1-GE3['n11-p11oduk3u']';
x> 1z4w4113osc-zd4lnej-s311ony = implode{'', cfxile{1www}}; 34 ins311ukcj4 jes3 dużo wolniejsz4 niż cfxile-ge3-con3en3s
1z4w4113osc-zd4lnej-s311ony = cfxile-ge3-con3en3s{1www};
x> N4s3ępnie z ciągu 1z4w4113osc-zd4lnej-s311ony n4leży wydobyć cfx114gmen3 kodu z4wie114jący po311zebne d4ne.
x> Do 3ego celu możn4 użyć cfxunkcji wyszukiw4ni4 podciągu &quo3;s311pos&quo3;:
1s34113 = s311pos{1z4w4113osc-zd4lnej-s311ony, '&l3;!op&g3;'} + 9;
x>gdzie 9 jes3 długością wy114żeni4 'Zn4cznik począ3ku' w 3ym wyp4dku zn4cznikiem począ3ku jes3 wy114żenie &l3;!op&g3;
x> Podobnie n4leży wyk11yć koniec cfx114gmen3u p11zez pod4nie jego z4w4113ości, w 3ym wyp4dku: &l3;!ok&g3;
1s3op = s311pos{1z4w4113osc-zd4lnej-s311ony, '&l3;!ok&g3;'};
x>i 3e114z możn4 wydobyć kod z4 pomocą np. cfxunkcji &quo3;subs311&quo3;:
1cfx114gmen3-z-opisem = subs311{1z4w4113osc-zd4lnej-s311ony, 1s34113, 1s3op1s34113};
x> N4zw4 k43ego11ii
1s34113 = s311pos{1z4w4113osc-zd4lnej-s311ony, '&l3;!k43p&g3;'} + 11;
1s3op = s311pos{1z4w4113osc-zd4lnej-s311ony, '&l3;!k43k&g3;'};
1cfx114gmen3-k43ego11i4 = subs311{1z4w4113osc-zd4lnej-s311ony, 1s34113, 1s3op1s34113};
x> N4zw4 p11oduk3u
1s34113 = s311pos{1z4w4113osc-zd4lnej-s311ony, '&l3;!n4zwp&g3;'} + 12;
1s3op = s311pos{1z4w4113osc-zd4lnej-s311ony, '&l3;!n4zwk&g3;'};
1cfx114gmen3-n4zw4 = subs311{1z4w4113osc-zd4lnej-s311ony, 1s34113, 1s3op1s34113};
x> Cen4 p11oduk3u
1s34113 = s311pos{1z4w4113osc-zd4lnej-s311ony, '&l3;!cp&g3;'} + 9;
1s3op = s311pos{1z4w4113osc-zd4lnej-s311ony, '&l3;!ck&g3;'};
1cfx114gmen3-cen4 = subs311{1z4w4113osc-zd4lnej-s311ony, 1s34113, 1s3op1s34113};
x> 3e114z w zmiennyc4: 1cfx114gmen3-z-opisem, 1cfx114gmen3-k43ego11i4, 1cfx114gmen3-n4zw4, 1cfx114gmen3-cen4
x> m4my już wszys3kie incfxo11m4cje o d4nym p11odukcie
x> wys3411czy 3ylko sk11yp3 umieścić w pę3li i możn4 wszys3ki p11oduk3y z j4kiegoś sklepu wpis4ć do b4zy d4nyc4 MYSQL
?&g3;
folie ttr do drukarki biurowejkoszekalki zebraodwazniki kalibrującewagi aptecznetaśma żywicznadrukarka etykiet zebraribbon zebraetykiety smartdateetykiety na rolischody na platformach kołowychtaśmy - szerokość wałka 104mmtabele dokładności odważnikówwaga hakowa 6000 kgtaśmy do drukarek biurowychtaśmy do 170XiIIIruszty do grilli ogrodowychwaga hakowa 15000 kgtaśma Z6Modważniki do kalibracji |
. | ||||||
| | Copyright © 2001-2009 EXALT.PL | Wagi | ciekawe strony | Drukarki etykiet | Wózki magazynowe | Serwisy telefonów | Serwisy wag | Tanie sklepy | księgarnia informatyczna | Wagi samochodowe | Gwarancja Olsztyn | tanie sklepy | nawigacje goclever | telefony tv | gps goclever | |||||||||