Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [cURL] ściąga starą stronę
bingo289
post 12.01.2015, 21:49:17
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 12.01.2015

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


Czołem. Ściągam pewną stronę curlem do późniejszego parsowania. Mam problem tego typu, że strona pobrana przez curla jest dużo starsza od tej widocznej w jakiejkolwiek przeglądarce - wygląda to tak, jakby u mnie na komputerze ta strona jednokrotnie zapisywała się w jakimś cache'u, a potem była z niego za każdym razem odczytywana, mimo że wysyłam do funkcji polecenie by tego nie robiła.
  1. function fetchURL($url){
  2. $ch = curl_init();
  3. curl_setopt($ch, CURLOPT_URL, $url);
  4. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  5. curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
  6. curl_setopt($ch, CURLOPT_TIMEOUT, 20);
  7. curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
  8. curl_setopt($ch, CURLOPT_FORBID_REUSE , true);
  9.  
  10. $feedData = curl_exec($ch);
  11. curl_close($ch);
  12. return $feedData;
  13. }


Ten post edytował bingo289 12.01.2015, 22:05:52
Go to the top of the page
+Quote Post
markuz
post 12.01.2015, 21:59:29
Post #2





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

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


Cytat
strona pobrana przez curla jest dużo starsza od tej widocznej w jakiejkolwiek przeglądarce

Piszesz to na podstawie porównania źródła HTML czy wyglądu?


--------------------
Go to the top of the page
+Quote Post
bingo289
post 12.01.2015, 22:04:30
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 12.01.2015

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


Kod i treść się różnią. Po prostu w PHP nie mogę obrobić najnowszej strony, którą widzę w przeglądarce.
Go to the top of the page
+Quote Post
markuz
post 12.01.2015, 22:14:19
Post #4





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

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


To wejdź w narzędzia dev chrome/firefox (firebug) i wyślij takie same nagłówki jakie wysyłasz z przeglądarki - być może strona broni się przed niechcianym ruchem w ten sposób. Jak to nie zadziała to podepnij pod curl-a ciasteczka.


--------------------
Go to the top of the page
+Quote Post
bingo289
post 13.01.2015, 06:44:57
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 12.01.2015

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


Przesyłanie nagłówków nic nie daje. Zauważyłem, że w zależności od tego czy jako url wpiszę stronę *.pl/ czy *.pl/index.php czy *.pl/index.php?t=0 to za każdym przypadku dostaję wersję strony z inną datą.

Ten post edytował bingo289 13.01.2015, 06:45:32
Go to the top of the page
+Quote Post
markuz
post 13.01.2015, 10:19:34
Post #6





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

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


Ale w cURL`u nie ma czegoś takiego jak cache. Pokaż poprawione zapytanie z dodanymi nagłówkami i ciasteczkami.


--------------------
Go to the top of the page
+Quote Post
bingo289
post 19.01.2015, 14:24:57
Post #7





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 12.01.2015

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


Podpięcie ciasteczek nic nie dało. Problem rozwiązałem włączając samą opcję POST:
  1. curl_setopt($ch, CURLOPT_POST, true);

Teraz funkcja pobiera najnowszą wersję strony thumbsupsmileyanim.gif
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 Wersja Lo-Fi Aktualny czas: 6.07.2025 - 07:08