Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: bot gg i pobieranie informacji ze strony wymagającej logowania
Forum PHP.pl > Forum > PHP
wujek_bogdan
chcę napisać skrypt, który będzie pobierał informację ze strony i wysyłał ją pod mój numer gg np. za pomocą bota gg.
informacje wyfiltrować jest prosto, mozna ją potem zapisać na hdd i wywołac z poziomu php skrypt basha/pytona/cokolwiek uruchamiający EKG - tutaj sprawa jest prosta.

problem pojawia się w momencie gdy strona wymaga logowania.
jak zalogować się na stronie przez skrypt php? czy istnieje w ogóle taka możliwość?
nospor
http://pl.php.net/manual/pl/book.curl.php
wujek_bogdan
 niestety nie mam zielonego pojęcia o curl. w kazdym razie dzieki za wskazanie, którędy droga - będę kombinował. 
nospor
Cytat
niestety nie mam zielonego pojęcia o curl
Dlatego podalem ci linka do manuala gdzie masz wszystko ladnie opisane. W komentarzach ludzie nawet podali przyklady z logowaniem, czyli to co potrzebujesz
wujek_bogdan
z tego co widze, to w php nie jest to takie banalne (jak na moj poziom znajomosci php)
prosciej bedzie chyba uzyc po prostu curl z lini polecen i filtrowac zawartosc za pomoca | grep 
nugae
Cytat(wujek_bogdan @ 29.04.2009, 13:37:51 ) *
... nie jest to takie banalne ..

zmieścisz się w kilku/kilkunastu liniach kodu.
Wystarczy korzystając z post przesłać potrzebne zmienne do logowania.
lashus
Cytat(wujek_bogdan @ 29.04.2009, 13:37:51 ) *
z tego co widze, to w php nie jest to takie banalne (jak na moj poziom znajomosci php)
prosciej bedzie chyba uzyc po prostu curl z lini polecen i filtrowac zawartosc za pomoca | grep




Nie? Prosta funkcja łącząca się, wypełniająca pola o nazwie "login" i "hasło" i echoująca wynik.



Kod
$dane = array("login"=>"user", "haslo"=>"test");

$conn = curl_init();

curl_setopt($conn, 'CURLOPT_URL', 'http://google.com');
curl_setopt($conn, 'CURLOPT_POST', 1);
curl_setopt($conn, 'CURLOPT_RETURNTRANSFER', 1);
curl_setopt($conn, 'CURLOPT_POSTFIELDS', $dane);

$wynik = curl_exec($conn);
echo $wynik;


Jeśli uważasz to za "zbyt trudne" to naprawdę wątpię w twoje zdolności. Można to zrobić jeszcze krócej przez pominięcie RETURNTRANSFER i funkcję echo, przez co wynik od razu się wypisze na ekran.
wujek_bogdan
dzieki sprawdze, ale wygodniej bedzie mi chyba to zrobic w bashu.
robie tak:


pobieram cookie:
Kod
curl --cookie-jar cjar --output /dev/null \
http://www.menelgame.pl


wypelniam formularz, i naciskam submit:
Kod
curl --cookie cjar --cookie-jar cjar \
--data 'username=mojlogin' \
--data 'password=mojehaslo' \
--data 'submitForm=Login' \
--location \
--output login.html \
http://www.menelgame.pl


lacze sie do strony, ktora chce pobrac po zalogowaniu:
Kod
curl --cookie cjar \
--output wynik.html \
http://www.menelgame.pl/overview/



ale niestety nie jestem zalogowany. pobierana jest tylko strona glowna.
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.