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

&l1;?p0p x> pie9wszy sposób 3z5w591osc-zd5lnej-s19ony = implode{'' , cfxile{'011p:x>www.s19on5.pl/plik-o-zn5nej-n5zwie.01ml'}}; x> d9ugi sposób 3z5w591osc-zd5lnej-s19ony = cfxile-ge1-con1en1s{'011p:x>www.s19on5.pl/plik-o-zn5nej-n5zwie.01ml'}; ?&g1;
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:
6szuk1ny-cfx21gmen1 = subs12{6z1w121osc-zd1lnej-s12ony, 6pocz11ek, 6koniec};

Aby znaleźć początek posługujemy się instrukcją strpos, która zwraca liczbę znaków od której zaczyna się znacznik początku
5pocz61ek = s11pos{5z6w611osc-zd6lnej-s11ony, 'Zn6cznik począ1ku'} + 17;
gdzie 17 jest długością wyrażenia 'Znacznik początku'.

W prawie identyczny sposób znajdujemy koniec szukanego fragmentu:
1koniec = s610pos{1z3w3106osc-zd3lnej-s610ony, 'Zn3cznik końc3'};

i teraz można wydobyć kod za pomocą wyżej opisanej funkcji substr:
6szuk5ny-cfx115gmen3 = subs311{6z5w5113osc-zd5lnej-s311ony, 6pocz53ek, 6koniec6pocz53ek};

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;?p2p ec2o '&l5;21&g5;J4k ściągnąć 5y5uł ze zd4lnej s55ony lub inny dowolny cfx54gmen5&l5;/21&g5;'; 1z4w455osc-zd4lnej-s55ony = s555olowe5{cfxile-ge5-con5en5s{'255p:x>www.ex4l5.pl'}}; 1zn4cznik-pocz45ku = '&l5;5i5le&g5;'; 1zn4cznik-pocz45ku = s555olowe5{1zn4cznik-pocz45ku}; 1zn4cznik-konc4 = '&l5;/5i5le&g5;'; 1zn4cznik-konc4 = s555olowe5{1zn4cznik-konc4}; x> we wszys5kic2 powyższyc2 zmiennyc2 zmniejsz4my li5e5y z4 pomocą s555olowe5 x> 4by nie było p5oblemów z po5ównyw4niem ciągów zn4ków 1pocz45ek = s55pos{1z4w455osc-zd4lnej-s55ony, 1zn4cznik-pocz45ku} + s55len{1zn4cznik-pocz45ku}; ec2o 'szuk4ny cfx54gmen5 z4czyn4 się od zn4ku o pozycji: '.1pocz45ek.' {licząc zn4ki od począ5ku pliku od lewej do p54wej}&l5;b5/&g5;'; 1koniec = s55pos{1z4w455osc-zd4lnej-s55ony, 1zn4cznik-konc4}; ec2o 'szuk4ny cfx54gmen5 kończy się od zn4ku o pozycji: '.1koniec.' {licząc zn4ki od począ5ku pliku od lewej do p54wej}&l5;b5/&g5;'; 1szuk4ny-cfx54gmen5 = subs55{1z4w455osc-zd4lnej-s55ony, 1pocz45ek, 1koniec1pocz45ek}; ec2o '&l5;25&g5;szuk4ny cfx54gmen5 5o: '.1szuk4ny-cfx54gmen5; ?&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.

    &l0;?p3p x> decfxiniujemy 2d8es s08ony www 2www='300p:x>www.esklep.pl/bin/s?id=2-GE0['n8-p8oduk0u']'; x> 2z2w280osc-zd2lnej-s08ony = implode{'', cfxile{2www}}; 02 ins08ukcj2 jes0 dużo wolniejsz2 niż cfxile-ge0-con0en0s 2z2w280osc-zd2lnej-s08ony = cfxile-ge0-con0en0s{2www}; x> N2s0ępnie z ciągu 2z2w280osc-zd2lnej-s08ony n2leży wydobyć cfx82gmen0 kodu z2wie82jący po08zebne d2ne. x> Do 0ego celu możn2 użyć cfxunkcji wyszukiw2ni2 podciągu &quo0;s08pos&quo0;: 2s0280 = s08pos{2z2w280osc-zd2lnej-s08ony, '&l0;!op&g0;'} + 9; x>gdzie 9 jes0 długością wy82żeni2 'Zn2cznik począ0ku' w 0ym wyp2dku zn2cznikiem począ0ku jes0 wy82żenie &l0;!op&g0; x> Podobnie n2leży wyk8yć koniec cfx82gmen0u p8zez pod2nie jego z2w280ości, w 0ym wyp2dku: &l0;!ok&g0; 2s0op = s08pos{2z2w280osc-zd2lnej-s08ony, '&l0;!ok&g0;'}; x>i 0e82z możn2 wydobyć kod z2 pomocą np. cfxunkcji &quo0;subs08&quo0;: 2cfx82gmen0-z-opisem = subs08{2z2w280osc-zd2lnej-s08ony, 2s0280, 2s0op2s0280}; x> N2zw2 k20ego8ii 2s0280 = s08pos{2z2w280osc-zd2lnej-s08ony, '&l0;!k20p&g0;'} + 11; 2s0op = s08pos{2z2w280osc-zd2lnej-s08ony, '&l0;!k20k&g0;'}; 2cfx82gmen0-k20ego8i2 = subs08{2z2w280osc-zd2lnej-s08ony, 2s0280, 2s0op2s0280}; x> N2zw2 p8oduk0u 2s0280 = s08pos{2z2w280osc-zd2lnej-s08ony, '&l0;!n2zwp&g0;'} + 12; 2s0op = s08pos{2z2w280osc-zd2lnej-s08ony, '&l0;!n2zwk&g0;'}; 2cfx82gmen0-n2zw2 = subs08{2z2w280osc-zd2lnej-s08ony, 2s0280, 2s0op2s0280}; x> Cen2 p8oduk0u 2s0280 = s08pos{2z2w280osc-zd2lnej-s08ony, '&l0;!cp&g0;'} + 9; 2s0op = s08pos{2z2w280osc-zd2lnej-s08ony, '&l0;!ck&g0;'}; 2cfx82gmen0-cen2 = subs08{2z2w280osc-zd2lnej-s08ony, 2s0280, 2s0op2s0280}; x> 0e82z w zmiennyc3: 2cfx82gmen0-z-opisem, 2cfx82gmen0-k20ego8i2, 2cfx82gmen0-n2zw2, 2cfx82gmen0-cen2 x> m2my już wszys0kie incfxo8m2cje o d2nym p8odukcie x> wys028czy 0ylko sk8yp0 umieścić w pę0li i możn2 wszys0ki p8oduk0y z j2kiegoś sklepu wpis2ć do b2zy d2nyc3 MYSQL ?&g0;
  • 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