raspar web usando php e curl de trás proxy corporativo / firewall

0

Estou por trás de um proxy / firewall corporativo. Eu quero extrair informações de outro site e estou tentando fazer isso usando php e curl.

Meu script é o seguinte:

===================== início do script ================

$ url = "www.guptaed.com"; $ proxy_ip = "12.34.56.78"; // ip mudou de proxy de empresa real $ proxy_port = "81"; $ proxy_user_pass = "meu_nome_do_usuário: minha_password"; // usuário e passe alterado

$ 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;

===================== fim do script ================

E o seguinte é exibido na tela quando eu chamo este script (através de um servidor apache instalado localmente):

início de produção ================

Encontrado

O documento foi movido para cá.

1

===================== fim da saída ================

"aqui" na sentença acima é um link com o url como: " http://www.guptaed.com/proxy.cgi?proxy.pac "

Qualquer ajuda será apreciada.

Obrigado! Ashish

guptaed
fonte

Respostas:

0

O URL de destino retornou um código de resposta HTTP 302, usado para redirecioná-lo para outro URL. É por isso que você obtém o resultado "Encontrado" com outro URL.

Tente configurar o curl para seguir os redirecionamentos:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
Atzmon
fonte
Agora, recebo uma tela cheia de informações. A saída tem coisas como as seguintes: // Dynamic Automatic Proxy Config - POR FAVOR, NÃO MODIFIQUE // Configuração Gerada em Fri Sep 9 04:03:14 2016 UTC - proxy.pac: padrão // IP do Cliente: 48.66.80.33 | NAVEGADOR: | Região: padrão 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" + "; ..... Alguma sugestão? Obrigado!
guptaed