19-03-2014, 03:08 PM
Si quieres saber como scrapear utilizando PHP te recomiendo este hilo:
http://foroblackhat.com/hilo-scrapear-ut...3%ADa-curl
Ahora vamos a tratar como Scrapear empleando Proxy, que es dar un pasito más en el scripting del Blackhatero
Vamos a trabajar con nuevas opciones de Curl que son:
CURLOPT_PROXY El proxy HTTP para enviar peticiones a través de tunel.
CURLOPT_PROXYTYPE: Puede ser CURLPROXY_HTTP (por defecto) o bien CURLPROXY_SOCKS5.
CURLOPT_HTTPPROXYTUNNEL: TRUE para usar un tunel a través de un proxy HTTP.
y en el caso de necesitar autentificación en el proxy serían:
CURLOPT_PROXYAUTH: Método de autenticación HTTP para usar conexiones vía proxy. Usa el mismo tipo de máscaras descritas en CURLOPT_HTTPAUTH. Para autenticación proxy, solamente CURLAUTH_BASIC y CURLAUTH_NTLM están actualmente soportadas.
CURLOPT_PROXYUSERPWD: Usuario y contraseña con el siguiente formato "[username]:[password]" para usarse en la conexión al proxy.
<?PHP
function get_content_url_with_proxy($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curl_setopt($ch, CURLOPT_PROXY, 'ip:port');
curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_NTLM);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'username:password');
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8');
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
Está en negrita lo que tienes que cambiar para que trabaje el Curl a través de un proxy. Si no hay autentificación en el proxy, quita o comenta las líneas con las opciones URLOPT_PROXYAUTH y CURLOPT_PROXYUSERPWD.
Cualquier duda para implementar esto en PHP, coméntala en este hilo.
Aquí puedes ver todas las opciones y sus posibles parámetros que puedes utilizar en Curl:
http://www.php.net/manual/es/function.curl-setopt.php
http://foroblackhat.com/hilo-scrapear-ut...3%ADa-curl
Ahora vamos a tratar como Scrapear empleando Proxy, que es dar un pasito más en el scripting del Blackhatero
Vamos a trabajar con nuevas opciones de Curl que son:
CURLOPT_PROXY El proxy HTTP para enviar peticiones a través de tunel.
CURLOPT_PROXYTYPE: Puede ser CURLPROXY_HTTP (por defecto) o bien CURLPROXY_SOCKS5.
CURLOPT_HTTPPROXYTUNNEL: TRUE para usar un tunel a través de un proxy HTTP.
y en el caso de necesitar autentificación en el proxy serían:
CURLOPT_PROXYAUTH: Método de autenticación HTTP para usar conexiones vía proxy. Usa el mismo tipo de máscaras descritas en CURLOPT_HTTPAUTH. Para autenticación proxy, solamente CURLAUTH_BASIC y CURLAUTH_NTLM están actualmente soportadas.
CURLOPT_PROXYUSERPWD: Usuario y contraseña con el siguiente formato "[username]:[password]" para usarse en la conexión al proxy.
<?PHP
function get_content_url_with_proxy($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curl_setopt($ch, CURLOPT_PROXY, 'ip:port');
curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_NTLM);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'username:password');
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8');
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
Está en negrita lo que tienes que cambiar para que trabaje el Curl a través de un proxy. Si no hay autentificación en el proxy, quita o comenta las líneas con las opciones URLOPT_PROXYAUTH y CURLOPT_PROXYUSERPWD.
Cualquier duda para implementar esto en PHP, coméntala en este hilo.
Aquí puedes ver todas las opciones y sus posibles parámetros que puedes utilizar en Curl:
http://www.php.net/manual/es/function.curl-setopt.php