Foros del Web » Programando para Internet » PHP »

Script de búsqueda en Google

Estas en el tema de Script de búsqueda en Google en el foro de PHP en Foros del Web. Buenas: He programado un script que hace búsquedas en Google con cURL de PHP, el cual funciona a la perfección. Sin embargo aunque use proxy, ...
  #1 (permalink)  
Antiguo 02/08/2015, 14:35
 
Fecha de Ingreso: abril-2009
Ubicación: En foros del web, normalmente en Web general, HTML y CSS.
Mensajes: 258
Antigüedad: 15 años
Puntos: 3
Script de búsqueda en Google

Buenas:

He programado un script que hace búsquedas en Google con cURL de PHP, el cual funciona a la perfección. Sin embargo aunque use proxy, se acaba dando cuenta de que no es un usuario sino un script automatizado el que hace las búsquedas y tengo que esperar algunas horas antes de volver a lanzar el script, ya que me devuelve le mensaje:

Your computer or network may be sending automated queries. To protect our users, we can't process your request right now.

El script es muy sencillo, le paso la URL a cURL (www.google.es?q=prueba+busqueda) y la lanzo, nada más.

Estoy seguro de que esto se puede evitar porque hay un millón de screpers para google, pero necesito saber cómo. Hasta el momento he añadido:

1. Un proxy
2. Un timeout para que haga una consulta a google cada 20 segundos, y no de manera constante.

¿Qué más debo hacer para evitar que google se dé cuenta de que no es un usuario?. Uso cURL de PHP.

¡Gracias!, un cordial saludo.
__________________
¿Por qué Anónimo?, porque como está el mundo no podemos considerarnos humanos...
  #2 (permalink)  
Antiguo 02/08/2015, 17:10
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 11 meses
Puntos: 127
Respuesta: Script de búsqueda en Google

usa un agente del brouser que no use javascript. o uno antiguo.
  #3 (permalink)  
Antiguo 02/08/2015, 23:50
 
Fecha de Ingreso: abril-2009
Ubicación: En foros del web, normalmente en Web general, HTML y CSS.
Mensajes: 258
Antigüedad: 15 años
Puntos: 3
Respuesta: Script de búsqueda en Google

Oh, gracias.

¿Qué ventaja tiene eso?. ¿Me darías un ejemplo de cuál podría usar?.

Te refieres a la opción CURLOPT_USERAGENT ¿verdad?, tengo puesto lo que venía en el ejemplo en el que me basé:

Código PHP:
curl_setopt($chCURLOPT_USERAGENT'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)');
curl_setopt($chCURLOPT_HTTPHEADER, array("Accept-Language: es-es, en")); 
Quizá me puedas iluminar, gracias de nuevo.
__________________
¿Por qué Anónimo?, porque como está el mundo no podemos considerarnos humanos...
  #4 (permalink)  
Antiguo 03/08/2015, 00:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Script de búsqueda en Google



¿Es ético lo que estás realizado?

¿Ya leíste las normas del foro para saber si es correcto publicar esto?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 03/08/2015, 00:07
 
Fecha de Ingreso: abril-2009
Ubicación: En foros del web, normalmente en Web general, HTML y CSS.
Mensajes: 258
Antigüedad: 15 años
Puntos: 3
Respuesta: Script de búsqueda en Google

Buenos días pateketrueke:

Si, leí las normas del foro, llevo 6 años aquí aunque comente poco jeje

Es ético puesto que la finalidad es educativa, aunque si no fuera así no habría problema puesto que google no lo prohibe tajantemente, solo dice que no se abuse de las búsquedas automatizadas, de hecho hay hasta extensiones para google chrome en la web oficial que hacen scraping en google jajaja.

Un abrazo.
__________________
¿Por qué Anónimo?, porque como está el mundo no podemos considerarnos humanos...

Última edición por Anonimo12; 03/08/2015 a las 00:12
  #6 (permalink)  
Antiguo 03/08/2015, 07:30
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 11 meses
Puntos: 127
Respuesta: Script de búsqueda en Google

Cita:
Iniciado por Anonimo12 Ver Mensaje
Oh, gracias.

¿Qué ventaja tiene eso?. ¿Me darías un ejemplo de cuál podría usar?.

Te refieres a la opción CURLOPT_USERAGENT ¿verdad?, tengo puesto lo que venía en el ejemplo en el que me basé:

Código PHP:
curl_setopt($chCURLOPT_USERAGENT'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)');
curl_setopt($chCURLOPT_HTTPHEADER, array("Accept-Language: es-es, en")); 
Quizá me puedas iluminar, gracias de nuevo.

si a eso me refiero.
por ejemplo yo uso una agente de palm para que google crea que soy un parato viejo y que solo sirvo para buscar cosas basicas.
me explico
(google usa muchisimo javascript para determinar si tu eres una maquina usa tambien un delay o timeout al azar de unos 10 a 30 segundos) para que las llamadas no tengan un patron y al usar un agente sin javascript por ejemplo uno de telefono antiguo como nokia o motorola no se preocupara por validar pormedio de javascript.

te dejo el user agent de Nokia6630 para navegacion wap
Código PHP:
Nokia6630/1.0 (2.3.129SymbianOS/8.0 Series60/2.6 Profile/MIDP-2.0 Configuration/CLDC-1. 
black berry
Código PHP:
BlackBerry7520/4.0.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/5.0.3.3 UP.Link/5.1.2.12 (Google WAP Proxy/1.0
Palm
Código PHP:
Mozilla/4.0 (compatibleMSIE 6.0Windows 98PalmSource/hspr-H102Blazer/4.016;320x320 
  #7 (permalink)  
Antiguo 07/08/2015, 11:41
 
Fecha de Ingreso: abril-2009
Ubicación: En foros del web, normalmente en Web general, HTML y CSS.
Mensajes: 258
Antigüedad: 15 años
Puntos: 3
Respuesta: Script de búsqueda en Google

Eres un hacha, muchas gracias, la verdad es que ha mejorado el rendimiento bastante y ahora hago muchas más consultas antes de que me salte la detección de google.

Si alguien puede dar nuevas recomendaciones sería la leche, ¿cómo evitar que google se dé cuenta de que no es un usuario el que hace la búsqueda? cuando se usa cURL como indico arriba.

Un cordial saludo.
__________________
¿Por qué Anónimo?, porque como está el mundo no podemos considerarnos humanos...
  #8 (permalink)  
Antiguo 07/08/2015, 12:12
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 11 meses
Puntos: 127
Respuesta: Script de búsqueda en Google

me alegro que te sirva.

otra cosa que aprendi con google es que no solo existe google.com sino que hay un dominio para cada pais.
podrias rotar las consultas entre servidores de google y una opcion es entre proxys para poder consultar no solo de la misma ip.
  #9 (permalink)  
Antiguo 08/08/2015, 03:36
 
Fecha de Ingreso: abril-2009
Ubicación: En foros del web, normalmente en Web general, HTML y CSS.
Mensajes: 258
Antigüedad: 15 años
Puntos: 3
Respuesta: Script de búsqueda en Google

Buenos días!

Lo he probado pero no sé si es por alguna configuración o lo hace google siempre, redirecciona a la extensión del país del a IP.

Por ejemplo si la IP es española y hago la búsqueda en https://www.google.com, me redirecciona a https://www.google.es antes de darme el resultado. Sé que cURL tiene una opción para no redireccionar:

Código PHP:
curl_setopt($chCURLOPT_FOLLOWLOCATIONfalse); 
Pero si la desactivo no puedo obtener la respuesta ya que google la devuelve después de la redirección.

Un par de dudas que igual puedes resolverme:

¿Qué es mejor, desactivar o activar las cookies?, hasta donde sé para activarlas basta con meter una variable en la opción correspondiente:

Código PHP:
        curl_setopt($chCURLOPT_COOKIEFILE$cookies);
        
curl_setopt($chCURLOPT_COOKIEJAR$cookies); 
Y para desactivarlas se pone unas comillas vacías:

Código PHP:
        curl_setopt($chCURLOPT_COOKIEFILE'');
        
curl_setopt($chCURLOPT_COOKIEJAR''); 
¿Es correcto?, ¿y cómo debería ejecutarlo para evitar la detección de google, con o sin cookies?.

También he estado dándole vueltas y si varío entre proxys creo que la única forma que tiene de detectar que la búsqueda se hace desde el mismo sitio es el dominio, así que he añadido esto:

Código PHP:
curl_setopt($chCURLOPT_REFERER'https://www.google.es'); 
Pero esto ha sido una ocurrencia mía, así que no sé si estoy en lo cierto o no jaja

Graias de nuevo. Un saludete.
__________________
¿Por qué Anónimo?, porque como está el mundo no podemos considerarnos humanos...
  #10 (permalink)  
Antiguo 08/08/2015, 03:36
 
Fecha de Ingreso: abril-2009
Ubicación: En foros del web, normalmente en Web general, HTML y CSS.
Mensajes: 258
Antigüedad: 15 años
Puntos: 3
Respuesta: Script de búsqueda en Google

Buenos días!

Lo he probado pero no sé si es por alguna configuración o es que google lo hace siempre, pero me redirecciona a la extensión del país de la IP.

Por ejemplo si la IP es española y hago la búsqueda en https://www.google.com, me redirecciona a https://www.google.es antes de darme el resultado. Sé que cURL tiene una opción para no redireccionar:

Código PHP:
curl_setopt($chCURLOPT_FOLLOWLOCATIONfalse); 
Pero si la desactivo no puedo obtener la respuesta ya que google la devuelve después de la redirección.

Un par de dudas que igual puedes resolverme:

¿Qué es mejor, desactivar o activar las cookies?, hasta donde sé para activarlas basta con meter una variable en la opción correspondiente:

Código PHP:
        curl_setopt($chCURLOPT_COOKIEFILE$cookies);
        
curl_setopt($chCURLOPT_COOKIEJAR$cookies); 
Y para desactivarlas se pone unas comillas vacías:

Código PHP:
        curl_setopt($chCURLOPT_COOKIEFILE'');
        
curl_setopt($chCURLOPT_COOKIEJAR''); 
¿Es correcto?, ¿y cómo debería ejecutarlo para evitar la detección de google, con o sin cookies?.

También he estado dándole vueltas y si varío entre proxys creo que la única forma que tiene de detectar que la búsqueda se hace desde el mismo sitio es el dominio, así que he añadido esto:

Código PHP:
curl_setopt($chCURLOPT_REFERER'https://www.google.es'); 
Pero esto ha sido una ocurrencia mía, así que no sé si estoy en lo cierto o no jaja

Graias de nuevo. Un saludete.

EDITO:

Outch, se ha publicado 2 veces el mensaje sorry, la conexión vaya. Pueden borrar el anterior y dejar este gracias.
__________________
¿Por qué Anónimo?, porque como está el mundo no podemos considerarnos humanos...

Última edición por Anonimo12; 08/08/2015 a las 03:45

Etiquetas: google, tips
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:48.