web scraping con php e curl da dietro proxy / firewall aziendali


0

Sono dietro un proxy / firewall aziendale. Voglio estrarre informazioni da un altro sito Web e sto cercando di farlo usando php e curl.

La mia sceneggiatura è la seguente:

===================== inizio dello script ================

$url = "www.guptaed.com"; $proxy_ip = "12.34.56.78"; // ip changed from real company proxy $proxy_port = "81"; $proxy_user_pass = "my_user_name:my_password"; // user&pass changed

$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1); curl_setopt($ch, CURLOPT_TIMEOUT_MS, 5000); curl_setopt($ch, CURLOPT_PROXYTYPE, 'HTTP'); curl_setopt($ch, CURLOPT_PROXY, $proxy_ip); curl_setopt($ch, CURLOPT_PROXYPORT, $proxy_port); curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxy_user_pass);

$data = curl_exec($ch); curl_close($ch); echo $data;

===================== fine dello script ================

E quanto segue viene visualizzato sullo schermo quando chiamo questo script (tramite un server Apache installato localmente):

===================== inizio dell'output ================

Trovato

Il documento è stato spostato qui.

1

===================== fine dell'output ================

"qui" nella frase sopra è un collegamento con l'URL come: " http://www.guptaed.com/proxy.cgi?proxy.pac "

Qualsiasi aiuto sarà apprezzato.

Grazie! Ashish

Risposte:


0

L'URL di destinazione ha restituito un codice di risposta HTTP 302, utilizzato per reindirizzare l'utente a un altro URL. Ecco perché ottieni il risultato "Trovato" con un altro URL.

Prova a configurare l'arricciatura per seguire i reindirizzamenti:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

Ora ricevo una schermata di informazioni. L'output ha cose come le seguenti: // Config. Proxy automatica dinamica - PER FAVORE, NON MODIFICARE // Configurazione generata il venerdì 9 settembre 04:03:14 2016 UTC - proxy.pac: default // IP client: 48.66.80.33 | BROWSER: | Regione: default ftpProxyAll = "PROXY" + "48.64.218.100:8080" + "; PROXY" + "48.65.218.100:8080"; gopherProxyAll = "PROXY" + "48.64.218.100:8080" + "; PROXY" + "48.65.218.100:8080"; httpProxyAll = "PROXY" + "48.64.218.100:8080" + "; ..... Qualche suggerimento? Grazie!
guptaed
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.