Autor Zpráva
Juve
Profil
Ahoj, jde nějak získat zdrojový kód stránky pomocí JS? Myslím tím zdrojového kodu na straně klienta - ten který server odesíla klientovi, který si můžeme ve webovém prohlížeči normálně prohlížet.
díky za pomoc
Keeehi
Profil
Jde spousta věcí spoustou různých způsobů. Spíš nám řekni, k čemu to potřebuješ, o co se snažíš a my ti poradíme, jak toho nejlépe dosáhnout.
Juve
Profil
ok tak mám adresu např: http://www.adresa.cz/ na tuto adresu se lze dostat pouze po přihlášení uživatele.
A já si chci napsat script, JS nebo PHP, kterým získám zdrojový kod stránky, ten rozparsovat a získávat z něj data, která potřebuju, která jsou specifická nějakým identifikátorem.

v PHP pro získání zdrojového kodu stránky existuje funkce file_get_contents, ta ale nefunguje u stránek, ke kterým je nutno být přihlášen.
Keeehi
Profil
Juve:
Jde to udělat i v php. Stačí se přece pomocí php přihlásit. Jedna z možností je využít knihovny cURL která slouší k posílání různých požadavků. Dokáže posílat jak GET tak POST požadavky, přijímat a odesílat cookies a další jiné. S její pomocí se dá vyrobit script, jehož komunikace s nějakým servrem bude k nerozpoznání od komunikace s prohlížečem.
Juve
Profil
Jj já o tom uvazoval, pomocí skriptu se přihlásit, ale nevěděl jsem jak a jestli vůbec.
Ok díky, pozkouším to takhle, já jen jestli neexistuje něco jiného, lehčího, např pomocí JS
Keeehi
Profil
Nevím, k čemu to potřebuješ, třeba by na to javascript stačil, jen se to pak musí pouštět v prohlížeči. Pomocí javascriptu se dá dostat téměř k všemu, co je zrovna na stránce, ovšem je tolik různých postupů a možností, že se bez konkrétní stránky a konkrétního elementu o tom nedá bavit.
Darker
Profil
Juve:
pomocí JS
Pouze pokud se skript spouští na stejné doméně, prázdné stránce nebo ze souboru. Jinak se k datům přes javascript kvůli zabezpečení nedostaneš.
V opačném případě je postup stejný jako v PHP - akorát v javascriptu neexistuje knihovna cURL. Zato nebudeš muset řešit cookies a location (přesměrování).
Keeehi
Profil
Darker:
cookies se dají řešit automaticky:
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
přesměrování také
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
Juve
Profil
Keeehi:
například https://novy.email.seznam.cz/. Pro vstup je nutné přihlášení. a řešil jsem to tímhle způsobem, ale stále mě to stejně přesměruje na formulář pro přihlášení:

$curl = curl_init('https://novy.email.seznam.cz/');

curl_setopt($curl, CURLOPT_USERPWD, 'user:pass');
curl_setopt($curl, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($curl, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_USERAGENT, 'Sample Code');

$response = curl_exec($curl);
$resultStatus = curl_getinfo($curl);

if($resultStatus['http_code'] == 200) {
    echo $response;
} else {
    echo 'Call Failed '.print_r($resultStatus);
}
juriad
Profil
adresa je nejspíš https://login.szn.cz/loginProcess
a nechceš posílat CURLOPT_USERPWD, ale místo toho spoustu POST parametrů převzatých z onoho formuláře (podrobně ho prozkoumej) včetně hidden polí
Juve
Profil
juriad:
aha už jsem to pochopil, díky moc

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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