Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: CURL - nie pobiera strony
Forum PHP.pl > Forum > PHP
ciucia86
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);
SmokAnalog
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.
ciucia86
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);


SmokAnalog
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.
trzczy
Mnie kiedyś to pomogło curl_error
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.