cUrl, parsowanie strony HTTPS

Odpowiedz Nowy wątek
2015-02-10 13:48
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.

edytowany 1x, ostatnio: TomaszKr, 2015-02-10 14:47

Pozostało 580 znaków

2015-02-10 13:54
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?


Pozostało 580 znaków

2015-02-10 14:03
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ć :)

edytowany 2x, ostatnio: TomaszKr, 2015-02-10 15:20

Pozostało 580 znaków

2015-02-10 14:34
0

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


Pozostało 580 znaków

2015-02-10 14:36
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ń.

edytowany 1x, ostatnio: dzek69, 2015-02-10 14:38

Pozostało 580 znaków

2015-02-19 17:44
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?

Pozostało 580 znaków

2015-02-19 20:53
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.

edytowany 1x, ostatnio: jackraymund, 2015-02-19 20:54

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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