dodaj tą stronę do ulubionych     
użytkownicy online 16, liczba odwiedzin: 1649098
książki i porady dla programistów i webmasterów porady dla budujących strony internetowe i webmasterów wagi

dołącz do modlących się o cud

poradnik programisty

taśmy zebra
taśmy zebra


wózki sklepowe

wagi vibra

Wagi dźwigowe
wagi dźwigowe


wagi ohaus

wózki transportowe
. 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 Page copy protected against web site content infringement by Copyscape
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.
Instrukcji fopen nie polecamy początkującym ze względu na skomplikowany sposób działania na niektórych serwerach... http://us3.php.net/manual/en/function.fopen.php

&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..?
Aby ściągać obrazki ze zdalnych serwerów przeczytaj:

  • 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.
    Wystarczy teraz umieścić na stronie źródłowej interesujące nas dane w odpowiednich niepowtarzalnych znacznikach i mozemy ściągać dowolne dane.
    Oto przykładowy skrypt, który służył do ściągania danych produktu ze strony internetowej starego sklepu.
    W starym sklepie umieszczono odpowiednie znaczniki "start" i "stop" dla każdej interesującej informacji i całą bazę sklepu przeniesiono do bazy danych MYSQL.

    &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;
  • Page copy protected against web site content infringement by Copyscape
    .
    pomóż w walce z rakiem

    tanie tonery

    pojemniki na piasek

    świece liturgiczne

    meble warsztatowe

    wózki magazynowe

    tanie wagi elektroniczne

    tanie drukarki zebra

    wagi axis

    wózki narzędziowe
    wózki narzędziowe
      | 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