Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Odczytanie zawartości stron wywołanych z CURL
amii
post
Post #1





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

Ostrzeżenie: (0%)
-----


Otóż potrzebuje odstać się do zawartości strony, do tego używam file_get_contents . Problem w tym, że aby dostać się do tych stron muszę je najpierw wywołać z odpowiednimi parametrami POST poprzez Curl.


  1. function curl($url, $args) { //wywołujemy stronę za pomocą CURL $url - adres strony, $args - argumenty dla POST
  2. $ch = curl_init($url);
  3. curl_setopt($ch, CURLOPT_POST, 1);
  4. curl_setopt($ch, CURLOPT_POSTFIELDS, $args);
  5. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  6. curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookies.txt');
  7. curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookies.txt');
  8. $wykonaj = curl_exec($ch);
  9. curl_close($ch);
  10. return $wykonaj;
  11. }


Funkcja wywoływana jest w ten sposób:

  1. $url = 'http://www.naukajazdy.pl/szukaj_osrodka_wyniki.html'; //adres strony
  2. $parametr = urldecode('kategorie%5B%5D=3'); //odkodowujemy parametr
  3. $args = array('fromSearch=1', 'wojewodztwo_id=0', 'miasto=', $parametr, 'x=18', 'y=9'); //lista parametrów dla POST
  4. $funkcja = curl($url, $args);


--------------------
gry flash online
Dobry hosting i tanie odnowienia domen firma: masternet.
Zarabianie bez wysiłku na domenach bez ruchu: prolink.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
cros
post
Post #2





Grupa: Zarejestrowani
Postów: 164
Pomógł: 21
Dołączył: 21.08.2009

Ostrzeżenie: (0%)
-----


Cytat(amii @ 25.04.2010, 15:38:10 ) *
Otóż potrzebuje odstać się do zawartości strony, do tego używam file_get_contents . Problem w tym, że aby dostać się do tych stron muszę je najpierw wywołać z odpowiednimi parametrami POST poprzez Curl.


  1. function curl($url, $args) { //wywołujemy stronę za pomocą CURL $url - adres strony, $args - argumenty dla POST
  2. $ch = curl_init($url);
  3. curl_setopt($ch, CURLOPT_POST, 1);
  4. curl_setopt($ch, CURLOPT_POSTFIELDS, $args);
  5. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  6. curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookies.txt');
  7. curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookies.txt');
  8. $wykonaj = curl_exec($ch);
  9. curl_close($ch);
  10. return $wykonaj;
  11. }


Funkcja wywoływana jest w ten sposób:

  1. $url = 'http://www.naukajazdy.pl/szukaj_osrodka_wyniki.html'; //adres strony
  2. $parametr = urldecode('kategorie%5B%5D=3'); //odkodowujemy parametr
  3. $args = array('fromSearch=1', 'wojewodztwo_id=0', 'miasto=', $parametr, 'x=18', 'y=9'); //lista parametrów dla POST
  4. $funkcja = curl($url, $args);

No i w czym tkwi twoj problem?
Bo nie kapuje?
Zrodlo strony zwraca ci funkcja curl_exec($ch) i nie musisz juz uzywac file_get_contents..
Go to the top of the page
+Quote Post
amii
post
Post #3





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

Ostrzeżenie: (0%)
-----


CURL zwraca zawartość strony tyle, że nie o to chodzi. Ta strona, którą zwraca CURL to szukajka wywoływana z parametrami przesyłanymi metodą POST.

Natomiast w pętli chce przefiltrować wyniki, które wyglądają w ten sposób: http://www.naukajazdy.pl/szukaj_osrodka_wy...?pageNo=$1
Nie mogę dać pętli po $1 po szukajka wymaga właśnie dostarczenia parametrów. Chodzi zatem o to aby najpierw wywołać szukajkę z odpowiednimi parametrami a później przelecieć w pętli po wynikach.


--------------------
gry flash online
Dobry hosting i tanie odnowienia domen firma: masternet.
Zarabianie bez wysiłku na domenach bez ruchu: prolink.
Go to the top of the page
+Quote Post
cros
post
Post #4





Grupa: Zarejestrowani
Postów: 164
Pomógł: 21
Dołączył: 21.08.2009

Ostrzeżenie: (0%)
-----


Ale z tego co widze to ta "szukajka" nie dziala na danych POST, tylko na zwyklych GETach, wiec wystarczy ci file_get_contents.
np. tak:
  1. $zrodlo = file_get_contents("http://www.naukajazdy.pl/szukaj_osrodka_wyniki.html?fromSearch=1&subject=school&FSF_search=auto&sub.x=28&sub.y=7&sub=Go!");

Pozniej z otrzymanego zrodla wyciagasz co chcesz za pomoca preg_match_all.
Chyba ze nie o to ci chodzi.

Ten post edytował cros 25.04.2010, 19:26:08
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 11:56