Simulazione di un browser abilitato ai cookie in PHP

Come posso aprire una pagina web e ricevere i suoi cookie usando PHP?

La motivazione : sto cercando di utilizzare feed43 per creare un feed RSS dal sito Web HighLearn abilitato agli RSS (sito di apprendimento remoto). Ho trovato la pagina web che contiene i contenuti del feed che ho bisogno di analizzare, tuttavia, richiede prima il login. Fortunatamente, l'accesso può essere effettuato tramite una richiesta GET, quindi è facile come fopen (), ad esempio " http://highlearn.website/login_page.asp?userID=foo&password=bar ". Ma ho ancora bisogno di get i cookie generati quando ho effettuato l'accesso , passare i cookie al client reale (usando setcookie () forse?) E poi redirect.

Per un client HTTP lato server è necessario utilizzare il module cURL . Ti consentirà di mantenere i cookie su più richieste. Fa anche alcune altre cose chiare come le richieste di raggruppamento (curl_multi) e la gestione trasparente dei reindirizzamenti.

Quando si tratta di restituire una session all'utente, non penso sia ansible. Dovresti essere in grado di sovrascrivere i cookie di altri domini. Ciò causerebbe enormi problemi di sicurezza, quindi nessun browser lo implementerebbe.

Ho usato il componente Browser Scriptable da Simpletest per questo tipo di screen scraping prima. Fa un buon lavoro simulando un browser.

Non è necessario passare la session al client reale (anche se potrebbe essere ansible, a seconda del livello di sicurezza del sito) – Puoi semplicemente lasciare che lo script PHP sia un proxy tra il sito di destinazione e il tuo utente finale .

Sfortunatamente, questo non è ansible a less che i siti web non si trovino nello stesso dominio. I cookie sono validi solo nel dominio da cui hanno avuto origine. Inoltre, i sottodomini contano come domini diversi. Altrimenti, (tieni presente che non ho usato molto php) potresti estrarre le intestazioni dalla risposta e copiare il cookie sul client.