Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> CURL - nie pobiera strony
ciucia86
post 25.01.2018, 11:08:27
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 25.01.2018

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


Witam

Mam problem z biblioteką cURL. Poniższy kod działa prawidłowo na jednym z serwerów nazwy, na innym serwerze z nazwy wywala błąd 406 Not Acceptable. Na serwerze OVH nic nie wyświetla.

Na drugim serwerze nazwy jakiś czas temu działało ok, dzisiaj zauważyłem, że przestało działać.

Możliwe, że cURL jest zablokowane? Może trzeba jakieś nagłówki dodać?

  1. $ch = curl_init();
  2. $url = 'https://www.shutterstock.com/pl/image/'.$id_prod;
  3. curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
  4. curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
  5. curl_setopt($ch, CURLOPT_URL, $url);
  6. curl_setopt($ch, CURLOPT_HEADER, 0);
  7. curl_setopt($ch, CURLOPT_COOKIE, $cookie_file);
  8. curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1)");
  9. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  10. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  11. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20);
  12. curl_setopt($ch, CURLOPT_TIMEOUT, 20);
  13. $site = curl_exec($ch);
  14. curl_close($ch);
Go to the top of the page
+Quote Post
SmokAnalog
post 25.01.2018, 12:55:33
Post #2





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Pewnie Shutterstock woła o nagłówek Accept.

  1. curl_setopt($ch, CURLOPT_HTTPHEADER, [
  2. 'Accept: image/*'
  3. ]);


Oczywiście zwróć uwagę co dajesz w Accept, bo nie wiem czy ten URL ma zwrócić obrazek czy stronę z obrazkiem.

Ten post edytował SmokAnalog 25.01.2018, 12:55:49
Go to the top of the page
+Quote Post
ciucia86
post 25.01.2018, 14:21:23
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 25.01.2018

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


wstawiłem, niestety nic nie pomogło. Dziwne, że na jednym z serwerów działa prawidłowo.

Ciągle otrzymuję: "HTTP/1.1 406 Not Acceptable Server: nginx Date: Thu, 25 Jan 2018 13:18:57 GMT Content-Type: text/html Content-Length: 574 Connection: keep-alive"

  1. $headers = array(
  2. "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
  3. "Accept-Encoding:gzip, deflate, br",
  4. "Accept-Language:pl-PL,pl;q=0.9,en-US;q=0.8,en;q=0.7",
  5. "Cache-Control:max-age=0",
  6. "Connection:keep-alive",
  7. "Host:www.shutterstock.com",
  8. "Upgrade-Insecure-Requests:1",
  9. );
  10.  
  11. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);


Go to the top of the page
+Quote Post
SmokAnalog
post 25.01.2018, 15:03:22
Post #4





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Pobaw się tymi nagłówkami i eksperymentuj. Jeśli działa w przeglądarce, to musi działać i w cURL, cudów nie ma. Daj identyczne nagłówki jak Twoja przeglądarka i sprawdź. A jak eksperymenty nie pomogą, to zapytaj ludzi z Shutterstocka.
Go to the top of the page
+Quote Post
trzczy
post 25.01.2018, 15:39:41
Post #5





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

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


Mnie kiedyś to pomogło curl_error
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: 14.08.2025 - 03:43