![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 27.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
Mam pewien problem do rozwiązania a mianowice potrezbuję pobrać z pewnej strony informacje wyciagane z bazy w pewnym miejscu tamtejszych stron i pozniej wyswietlic je w petli jakos ładnie na stronie wynikowej.
Zeby była jasnosc nie mam dostępu do bazy tamtejszej strony, po prostu mozna jawnie wywoływac strone zmieniając na końcu nr. ID. Ogolnie chodzi więc o jakies sensowne przefiltrowanie tamtych stron w petli, tak aby zostawiał tylko informacje z jakiejś tabelki. Moze ktoś robił coś podobnego albo ma pomysł jak to rozwiązac? Na pierwszy rzut przychodzi mi do głowy tworzenie w petli plików, po czym odrazu otwieranie ich i kasowanie w formie np. od znaku jakiegostam do jakiegos ale czy nie da sie tego jakos prosciej ropzwiazac? A jesli nawet nie to jakimi funkcjami to wycinac - zywklymi eregami? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 196 Pomógł: 2 Dołączył: 17.01.2004 Skąd: Sosnowiec Ostrzeżenie: (0%) ![]() ![]() |
Było wiele razy... file" title="Zobacz w manualu php" target="_manual + preg_match" title="Zobacz w manualu php" target="_manual/preg_match_all" title="Zobacz w manualu php" target="_manual w zupełności starczy...
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 27.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
Własnie problem w tym, ze nie bardzo moge znalezc przykłady w wyszukiwarce.
A moglbys zpaodać jakis przykład albo link do watku z podobnym problemem? Ogolnie dzieki za pomoc, moze jakos juz sobie poradz ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 476 Pomógł: 1 Dołączył: 5.11.2005 Skąd: Bieruń city Ostrzeżenie: (0%) ![]() ![]() |
i teraz na przykład na stronie jest takie coś: to robimy:
Ten post edytował dtb 28.12.2005, 14:04:13 -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 27.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
W końcu poradziłem sobie z tym problemem tzn. wsyztskie funkcje mi działaja ok. i wiem juz jak wyciagac konkretne dane z pol, jednak mam pewne pytanie.
A mianowicie czy są jakieś zabezpieczenia przed ściąganiem informacji ze stron, które mozna jawnie wywołać zmieniając numer ID na koncu? Pytam bo tak sie dziwnie skłąda, ze informacje ktore chce sciągnąc z pewnej strony w niektorych jej miejscach czyta ok. ale niektorych nie pokazuje ich. Wszelkie instrukcje do wypisania pozniejszgeo nie maja znaczenia gdyz nawet zwykła funkcja FILE czy tez jakąkolwiek inna do wypisania pliku FGETS tez probowalem) wypisując zrodlo strony daje pusty rezultat tzn. kod strony ale bez danych z bazy. Ten post edytował marekk 2.01.2006, 12:09:13 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 312 Pomógł: 0 Dołączył: 29.12.2004 Ostrzeżenie: (0%) ![]() ![]() |
o ile wiem nie ma sposobu na zablokowanie dostępu do źródła html strony,
skoro masz organoleptyczny ("wizualny") dostęp do danych to równie dobrze może je "zobaczyć" Twoja aplikacja. Można natrafić na pozorne zabezpieczenia np. http://www2.thecrims.com/, zobacz źródło, nawet jak wywołasz http://www2.thecrims.com/start.php to cofa Cię do indexu np. fopen nie zadziała prawidłowo. W takich sytuacjach najlepiej jest użyć biblioteki http://pl.php.net/curl" title="Zobacz w manualu php" target="_manual -------------------- ![]() ![]() |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 27.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
Hmm... ale wlasnie tam nie wydaje mi sie zeby było jakies obejscie, przynajmniej nic nie przekierowuje jawnie... zreszta sama zawartosc pliku cyzta tylko jak wspomniałem te wartosci z bazy cos mi omija nie wiem czemu :]
Zreszta zpaodam konkretnie strone: strona 2580... strona 2581... itd... Jak ja wypisze chocby w zwykłej petli jest wszytsko oprocz danych z bazy. Kod $html=""; $fp = fopen(http://www.nck.pl/bazydanych_inst.php?ins=2580,'r'); while ($line=fgets($fp,10000)) { $html.=$line; } fclose($fp); echo $html; A np. z innego miejsca tej strony rowniez w przypadku plikow z informacjami z bazy, np. jakas inna strona poprawnie moge wyciagnac całosc. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 312 Pomógł: 0 Dołączył: 29.12.2004 Ostrzeżenie: (0%) ![]() ![]() |
chyba rozumiem w czym Twój problem tkwi. Próbujesz pobrać ze strony dane
ale dane te wyświetylają się dopiero po wypełnieniu formularza i kliknięciu szukaj ? Linki które wkleiłes wyżej nie dają żadnego wyniku a to dlatego że dane z formularza wyszukiwarki wysyłane sa metodą POST do skryptu, a ten dopiero zwraca wyniki. Jeśli użyjesz fopen nie masz możliwości przesłania danych POST. Jak już pisałem w tym momencie przychodzi z pomocą CURL i dwie funkcje:
Ten post edytował ennics 2.01.2006, 13:18:07 -------------------- ![]() ![]() |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 27.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
No rzeczywiscie tam jest akurat formularz suzkania :]
Ok. dzieki i w takim razie zaraz poprzegladam co te curle robia i jak je stosowac ![]() |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 312 Pomógł: 0 Dołączył: 29.12.2004 Ostrzeżenie: (0%) ![]() ![]() |
jest jeszcze coś, i chyba nie chodzi o dane POST, zauważ że jeśli otworzysz
nowe okno wyszukiwarki w wkleisz link który podałeś wcześniej strona 2580 nie otrzymasz ządnych danych. Teraz skorzystaj z formularza żeby wyszukać obojętnie jaką pozycję i ponownie wklei link. Powinno zadziałać. Dlaczego ? Trodno powiedzieć nie patrząc w kod. Możliwe że dostęp do bazy jest inicjowany wywołaniem jakiejś akcji w formularzu... anyway, CURL zawiera szereg funkcji którymi możesz symulować przeglądarkę. Ten post edytował ennics 2.01.2006, 13:29:22 -------------------- ![]() ![]() |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 27.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
Dzieki raz jeszcze i chyba obejdzie sie nawet bez curla. Z tego co zauważyłem w formularzu jest ukryte pole hidden "wys", które wystarczy ustawic na 1 i wyświetla dane w nowych oknach przeglądarki
![]() -------------------------------------------------------------------------------- Nie chciałem tworzyc nowego tematu wiec jeszcze tutaj z kolejnym problemem odnosnie tego watklu. Wyciągam sobie wsyztsko ponizszym kodem: Kod for ($i=2400; $i<2500; $i++) { $nazwa=""; $nazwa = "http://www.nck.pl/bazydanych_inst.php?ins=$i&wys=1"; echo "<a href=$nazwa target='_blank'>".$nazwa."</a><br>"; $html=""; $fp = fopen($nazwa,'r'); while ($line=fgets($fp,10000)) { $html.=$line; } fclose($fp); preg_match_all("(<span class=\"normal\">(.*)</span></td></tr>)", $html, $matches); echo $matches[0][0]."<br>"; echo "<hr>"; } i dostaję dane, które chciałem otrzymac jednak nie posegregowane tzn. dane jedne po drugich - mam na myśli tą tablice $matches[0][0]... cyz wpisze tak czy $matches[1][0].. itp. zawsze wsyztsko jest razem w jednej zmiennej jakby. Nie da sie tego jakos rozdzielic i wypisac osobno chocby po przecinkach czy enterach, z tych znacznikow strony zrodłowej Kod <span class="normal">costam...</span></td></tr> ?
Ten post edytował marekk 2.01.2006, 19:33:21 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.07.2025 - 07:07 |