Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ PHP _ Pobranie zablokowanej strony przez CURL

Napisany przez: tomekmvr 14.05.2019, 11:46:32

Witam
Próbuje pobrać stronę 1xbet.com za pomocą Curl, ale że strona nie jest dostępna w Polsce zakupiłem serwer w Rosji i tam próbowałem odpalić skrypt który by się łączył z tą stroną, ale dostaje komunikat po angielsku że strona nie jest dostępna w Twoim kraju.
I moje pytanie w jaki sposób można obejść blokady aby połączyć z taką strona?

Napisany przez: adbacz 14.05.2019, 15:07:52

Tylko i wyłącznie poprzez request z serwera/adresu IP z kraju który nie jest objęty blokadą regionalną. Niestety, ale serwery proxy są rozsiane po całym świecie, jeśli nie dostaniesz jasnej informacji gdzie dany proxy działa to nie ma pewności, że kupując w rosyjskojęzycznej stronie, serwer fizycznie będzie stał w Rosji.

Napisany przez: tomekmvr 14.05.2019, 17:34:54

IP serwera to: 91.218.229.13 po sprawdzeniu pokazuje, że znajduje się w rosji.
WIęc chyba to nie winna serwera.
Może jakieś na główki w Curl trzeba dodać?

chyba, że ta strona też w Rosji nie działa? ale wątpie

i czy domena, która jest zarejestrowana w Polsce ma na to jakiś wpływ?
o to mój kod:

  1. $url = 'https://1xbet.com/';
  2.  
  3.  
  4. $ch = curl_init($url);
  5. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  6. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  7.  
  8. curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
  9.  
  10.  
  11. $output = curl_exec($ch);
  12.  
  13. if(curl_errno($ch)){
  14. throw new Exception(curl_error($ch));
  15. }
  16.  
  17.  
  18. http://www.php.net/echo $output;

Napisany przez: Tomplus 14.05.2019, 17:47:04

Ale co w ogóle zwraca Ci curl?
To samo gdybyś pobrał stronę bez użycia curl czyli file_get_contents($url);

Curl jest pomocne gdy potrzebujesz wejść na stronę przedstawiając się jako dana przeglądarka np. Chrome czy Firefox, ale jak chcesz pobrać ogólnie dostępne wartości do nie jest wymagane.


Napisany przez: tomekmvr 14.05.2019, 17:53:58

file_get_contents($url) także w tym przypadku, nie działa.

Więc próbuje używać curl dodając więcej opcji to dostje komunikat, że strona nie jest dostępna w tym kraju
lub
wyświetla mi się strona z informacją
"Dostęp do zasobów informacyjnych jest ograniczony na podstawie ustawy federalnej z dnia 27 lipca 2006 r. N 149-ФЗ „Informacje, technologie informacyjne i ochrona informacji”"


  1.  
  2. <?php
  3. $url = 'https://1xbet.com/';
  4.  
  5. $cookie = http://www.php.net/tmpfile();
  6. $userAgent = 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31' ;
  7.  
  8. $ch = curl_init($url);
  9.  
  10. $options = http://www.php.net/array(
  11. CURLOPT_CONNECTTIMEOUT => 20 ,
  12. CURLOPT_USERAGENT => $userAgent,
  13. CURLOPT_AUTOREFERER => true,
  14. CURLOPT_FOLLOWLOCATION => true,
  15. CURLOPT_RETURNTRANSFER => true,
  16. CURLOPT_COOKIEFILE => $cookie,
  17. CURLOPT_COOKIEJAR => $cookie ,
  18. CURLOPT_SSL_VERIFYPEER => 0 ,
  19. CURLOPT_SSL_VERIFYHOST => 0
  20. );
  21.  
  22. curl_setopt_array($ch, $options);
  23. $kl = curl_exec($ch);
  24. curl_close($ch);
  25. http://www.php.net/echo $kl;
  26. ?>

Napisany przez: Tomplus 14.05.2019, 18:02:14

spróbuj:

  1. curl_setopt($ch, CURLOPT_HTTPHEADER,"Accept-Language: ru;q=0.5");


lub

  1. curl_setopt($ch, CURLOPT_HEADER, false);



Napisany przez: tomekmvr 14.05.2019, 19:36:17

Niestety, żadne rozwiązanie nie daje skutku.

Będę próbował, dalej, może w końcu mi się uda.

Napisany przez: adbacz 14.05.2019, 19:42:23

Nowa opera ma wbudowany tryb VPN gdzie łączysz się z innych krajów. Możesz spróbować od siebie i zobaczyć co pobierze przeglądarka. Dodatkowo w internecie jest dużo bezpłatnych proxy - możesz je użyć do testów, czy serwer docelowy zwraca konkretną treść w zależności od kraju serwera proxy.

Napisany przez: kuxma 29.08.2019, 21:24:56

może to pomże

  1. $headers = http://www.php.net/array(
  2. 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  3. 'Accept-Encoding: deflate, br',
  4. 'Accept-Language: en-US,en;q=0.5',
  5. 'Connection: keep-alive',
  6. 'Host: 1xbet.coml',
  7. 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 11_0_1 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A402 Safari/604.1',
  8. 'Origin:https://1xbet.coml',
  9. 'Referer:https://1xbet.com/'
  10. );
  11.  
  12.  
  13. $url = 'https://1xbet.com/';
  14.  
  15.  
  16. $ch = curl_init($url);
  17. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  18. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  19. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  20. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  21.  
  22. $output = curl_exec($ch);
  23. curl_close($ch);
  24.  
  25.  
  26.  
  27. http://www.php.net/echo $output;
  28.  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)