Autor Zpráva
Jan Doležal
Profil
Ahoj.

Jelikož Alza.cz ani, Fortuna.cz nenabízí žádnou statistiku typu koupené/vrácené, vyhráno/prohráno/vsazeno, tak bych si pro osobní potřebu podobnou statistiku rád vytvořil.

Stránky už mám zparsované, ale dělá mi problém to přihlášení.

Jak script přihlásit na dané weby? Bohužel žádnou api nevedou.

Pokud budete chtít, tak scripty po dokončení dám k dispozici.

Děkuji.
Nox
Profil
Stránky stahuješ cURLem? Přihlašování jde přes něj udělat také - najdeš si URL s login formulářem, najdeš si cílovou URL formuláře, najdeš si atributy name u inputů a pošleš cURLem na cílovou stránku POST request a pak už pokračuješ tím, co už máš

Poslání POST:
http://stackoverflow.com/a/4947093/387503

Je také potřeba:
http://stackoverflow.com/questions/5826618/using-curl-maintain-cookies-sessions-etc
Jan Doležal
Profil
Stránku parsuji pomocí:
http://sourceforge.net/projects/simplehtmldom/
http://simplehtmldom.sourceforge.net/
Nox
Profil
No stejně bych to viděl na to cURL ... nevim jestli ta utilita umožňuje přijmout přímo html (string) místo url, ale šlo by to přes cURL stáhnout k sobě a pokračovat tím co už máš

Jde o to, aby ten request na stránku šel se správně nastaveným SESSID, což by u téhle utility hádám nešlo upravit (leda sessid v url, ale to ty weby nejspíš -správně- nebudou podporovat)
Jan Doležal
Profil
Tak bohužel se mi to nepovedlo zprovoznit. Ikdyž jsem to dělal přesně podle těch dvou postů, tak se nikdy nepřihlásim.
Jan Doležal
Profil
Toto je můj kod:

<?php

$url = 'https://www.ifortuna.cz/cz/home/index$541644-login.html';

$params = http_build_query(array(
    "login" => $login,
    "password" => $password,
));


$ch = curl_init($url);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]);
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

$result = curl_exec($ch);

curl_close($ch);

print_r($result);

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: