Skocz do zawartości

CURL nie pobiera strony


jaclaw

Rekomendowane odpowiedzi

Mam kod, który pobiera każdą stronę za wyjątkiem jednej - blog na Wordpess. Probowałem file_get_contents ale to samo, wszystkie idą, a ta strona nie.. Oto kod:




<?php
$w = 'https://.....';
$curl = curl_init($w);

curl_setopt($curl, CURLOPT_URL, $w);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_USERAGENT, 'TEST');
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_HEADER, 0);	

$body = curl_exec($curl);
curl_close($curl);

echo '<textarea>'.$body.'</textarea>';
?>

Ma ktoś jakiś pomysł jak pobrać do zmiennej źródło tej strony?

Drukarka przestaje już drukować? Kup tusze i tonery na inkhouse.pl !

Odnośnik do komentarza
Udostępnij na innych stronach

Podaj adres tego bloga co Ci nie pobiera ... Przy okazji tak się nie wywołuje cUrl

$w = 'https://.....';$curl = curl_init($w);curl_setopt($curl, CURLOPT_URL, $w);

Adres przekazuje się albo w funkcji curl_init albo curl_setopt. Nie w dwóch jednocześnie.

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Daj po curl_exec to: 

$info = curl_getinfo($curl);

 

Po wyświetleniu tablicy powinieneś się dowiedzieć dlaczego nie łączy.

Odnośnik do komentarza
Udostępnij na innych stronach

Array
(
    [url] => https://awarie-hydraulik.pl/
    [content_type] => 
    [http_code] => 0
    [header_size] => 0
    [request_size] => 0
    [filetime] => -1
    [ssl_verify_result] => 0
    [redirect_count] => 0
    [total_time] => 30.001386
    [namelookup_time] => 0.000867
    [connect_time] => 0
    [pretransfer_time] => 0
    [size_upload] => 0
    [size_download] => 0
    [speed_download] => 0
    [speed_upload] => 0
    [download_content_length] => -1
    [upload_content_length] => -1
    [starttransfer_time] => 0
    [redirect_time] => 0
)

Mion, użyłem jak piszesz tylko curl_init usuwając linię curl_setopt($curl, CURLOPT_URL, $w);

Efekt widoczny powyżej. Możliwe, że jest jakieś zabezpieczenie Na stronie?

Drukarka przestaje już drukować? Kup tusze i tonery na inkhouse.pl !

Odnośnik do komentarza
Udostępnij na innych stronach

Na moim serwerze daje radę:

Array
(
    [url] => https://awarie-hydraulik.pl/
    [content_type] => text/html; charset=UTF-8
    [http_code] => 200
    [header_size] => 411
    [request_size] => 76
    [filetime] => -1
    [ssl_verify_result] => 0
    [redirect_count] => 0
    [total_time] => 0.282178
    [namelookup_time] => 0.001517
    [connect_time] => 0.02668
    [pretransfer_time] => 0.026779
    [size_upload] => 0
    [size_download] => 10113
    [speed_download] => 35839
    [speed_upload] => 0
    [download_content_length] => -1
    [upload_content_length] => 0
    [starttransfer_time] => 0.256399
    [redirect_time] => 0
    [redirect_url] => 
    [primary_ip] => 263.189.33.99
    [certinfo] => Array
        (
        )

    [primary_port] => 80
    [local_ip] => 15.166.7.36
    [local_port] => 45238
)

wiec najprawdopodobniej jest porblem z twoim połączeniem z zdalnym serwerem.

 

Sprawdź na innym hostingu.

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Wiec do wyboru:

- zmiana hostingu;

- łączenia po przez proxy;

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Całej strony nie przeniosę z takiego powodu.. Z reszta inny host może być blokowany np. przez inną sprawdzaną stronę i zaś przenoszenie :D odpada.

 

Nie mam doświadczenia z używaniem proxy, możesz podać przykład takiego użycia?

 

Teraz zrobiłem tak:

if($info[http_code] !== '200')
{
$homepage = file_get_contents("moj_inny_serwer/sprawdz.php?link=".$wiersz[web]);
}

I jeśli strona się nie otwiera, to zostanie jeszcze zbadana z innego serwera. Pomogło.

Drukarka przestaje już drukować? Kup tusze i tonery na inkhouse.pl !

Odnośnik do komentarza
Udostępnij na innych stronach

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

  • 3 tygodnie później...

cURL jest Miodzio ...

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności