cUrl, parsowanie strony HTTPS

0

Dzień dobry,

Mam problem z pewną stroną internetową ( np. https://pewnastrona.pl ).

Niestety nigdy nie miałem odczynienia z parsowaniem stron HTTPS. Próbowałem cUrl oraz PHP Simple HTML DOM Parser. Wynik jaki otrzymałem to biała karta.

Z tej strony co podałem przykładowo chciałbym uzyskać tabelę rozkładów.

Proszę o pomoc w zrozumieniu jak to zrobić, ewentualnie przykład dla HTTPS.

Pracuję na WAMP , mam załączone : allow_url_open oraz php_curl.

0

no ale kolego, albo masz problem z parsowaniem strony, albo z jej pobraniem - to się zdecyduj, bo podajesz dwie biblioteki, które mają inne zastosowanie

na którym etapie stoisz i jak próbowałeś rozwiązać problem?

no i może jakiś kod?

0

Aj troche chaosu wprowadziłem.

Zmienna:

$url='https://pewnastrona.pl';

Wpierw parsowałem PHP Simple HTML DOM :

$html = file_get_html($url);
echo $html;

Otrzymałem biała karte...

To próbuję inną metodą, aby wg ją wywołać:

$ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_REFERER, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    $result = curl_exec($ch);
    curl_close($ch);

echo $result ;
 

I taki sam rezultat...

I teraz stoje w miejscu, gdyż coś mi uciekło bądź czegoś nie wiem i chcę się dowiedzieć :)

0

Trzeba dodać obsługę ciasteczek i powinno śmigać.

0

No to teraz tak:

  1. Poczytaj o logowaniu/pokazywaniu błędów. Włącz wszystkie błędy, nawet NOTICE, bo tam też może być coś ciekawego
  2. http://php.net/manual/en/function.curl-error.php
  3. Strona mi zwraca Redirection limit reached (podpowiedź do powyższego). Po kilku próbach i uzyskaniu dostępu wyszło mi, że jest duża jest to element ZABEZPIECZENIA przeciwko takiemu pobieraniu danych. Zabezpieczeń może być więcej. To forum nie pomoże Ci w obchodzeniu jakichkolwiek zabezpieczeń, gdyż takie coś można podciągnąć pod paragrafy i po prostu - nie jest fair. Zapytaj autorów strony o jakieś API czy dostęp do danych, które Cię interesują. Pamiętaj, że dane przedstawione na tamtej stronie są czyjąś własnością! Edit: Faktycznie, to ciastka, a nie inna weryfikacja, niemniej jednak warto zainteresować się legalnością swoich działań.
0

Dzięki za odpowiedź na ten wątek.
Teraz mam nowe pytanie, a co jeśli JS spowalnia wczytanie się pewnych danych, a cUrl już pobrał stronę? Czy jest jakiś sposób na to?

0

Jeżeli JS jest odpowiedzialne za wyświetlanie danych na początku, uruchom przeglądarke z wyłączonym JS'em, aby sprawdzić czy jest wersja strony non-js.
Jeżeli jej nie ma, musisz prześledzić JS'a, najlepiej na początku sprawdzić jakimś debuggerem pakietów http(charles lub livehttp w firefoxie), czy nie wysyła dodatkowego zapytania z prośbą o brakujące dane.
Jeżeli nie wysyła dodatkowych zapytań, musisz prześledzić JS'a(najłatwiej poprzez chrome->zbadaj element->profiles) i przepisać js'a do PHP i samemu wygenerować te dane.

1 użytkowników online, w tym zalogowanych: 0, gości: 1