Foros del Web » Programando para Internet » PHP »

Obtener redireccion url

Estas en el tema de Obtener redireccion url en el foro de PHP en Foros del Web. Hola quiero saber como hago para obtener la pagina de redireccion de una busqueda de google con "voy a tener suerte" http://www.google.com/search?q=rapido y furioso&btnI=Voy a ...
  #1 (permalink)  
Antiguo 29/05/2011, 19:47
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 13 años
Puntos: 9
Obtener redireccion url

Hola quiero saber como hago para obtener la pagina de redireccion de una busqueda de google con "voy a tener suerte"

http://www.google.com/search?q=rapido y furioso&btnI=Voy a tener suerte
  #2 (permalink)  
Antiguo 29/05/2011, 20:04
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Obtener redireccion url

Voy a tener suerte obtiene el primer resultado de una búsqueda normal con la misma cadena... Se me ocurre que hagas una búsqueda normal y obtengas el código fuente con cURL, de ahí tienes dos opciones...
La primera que en este caso se me hace complicada es obtener la url del primer resultado con expresión regular, la segunda es que con algunos explode sacas la url del primer resultado y listo

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #3 (permalink)  
Antiguo 29/05/2011, 20:11
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Obtener redireccion url

Cita:
Iniciado por Sourcegeek Ver Mensaje
Voy a tener suerte obtiene el primer resultado de una búsqueda normal con la misma cadena... Se me ocurre que hagas una búsqueda normal y obtengas el código fuente con cURL, de ahí tienes dos opciones...
La primera que en este caso se me hace complicada es obtener la url del primer resultado con expresión regular, la segunda es que con algunos explode sacas la url del primer resultado y listo

Saludos!
Para eso podes usar la api de google y con Json obtener solo el primer resutaldo

Saludos
  #4 (permalink)  
Antiguo 29/05/2011, 20:24
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 13 años
Puntos: 9
Respuesta: Obtener redireccion url

Lo de expresion regular yo tampoco se me ocurre alguna, ademas de la ya propuesta que te redirecciona automaticamente. Y la otra solucion, no me es viable parsear la pagina ya que puede contener errores los resultados dependiendo de lo que busque...como que lo veo muy engorroso..

Acerca de la api de google y usar json, no tengo ni la menor idea de como se hace...si me podrian tirar una mano con algun ejemplo estaria sumamente agradecido
  #5 (permalink)  
Antiguo 29/05/2011, 21:06
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Obtener redireccion url

http://blog.unijimpe.net/json-con-php/

en vez de require_once("JSON.php"); podes usar json_decode() de php

saludos
  #6 (permalink)  
Antiguo 29/05/2011, 21:59
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 13 años
Puntos: 9
Respuesta: Obtener redireccion url

Ya esta solucionado :D

uso http://ajax.googleapis.com/ajax/services/search/web?v=1.0&key=mykey&q=cualquier cosa

y de ahi parseo el primer resultado

el problema viene que cuando a la url le agrego el valor a buscar desde una variable

ejemplo

$busca = "youtube";
$url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&key=mykey&q=".$busca;

y despues entro con curl me da error, dice algo como

Your client has issued a malformed or illegal request. That’s all we know...
  #7 (permalink)  
Antiguo 29/05/2011, 22:03
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Obtener redireccion url

Usa esta url

http://ajax.googleapis.com/ajax/serv....0&q=cualquier cosa

y utiliza Json ahorraras mucho código, saludos
  #8 (permalink)  
Antiguo 29/05/2011, 22:07
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 13 años
Puntos: 9
Respuesta: Obtener redireccion url

El error 400 es el que me pone
  #9 (permalink)  
Antiguo 29/05/2011, 22:08
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Obtener redireccion url

Porfavor no copies desde FDW ya que abrebia la url
Código PHP:
Ver original
  1. http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=cualquier

esa es la url
  #10 (permalink)  
Antiguo 29/05/2011, 22:09
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 13 años
Puntos: 9
Respuesta: Obtener redireccion url

Cita:
Iniciado por marcofbb Ver Mensaje
Usa esta url

[url]http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=cualquier[/url] cosa

y utiliza Json ahorraras mucho código, saludos
No tengo ni idea de como se usa, sino lo usaria pero no entiendo json la verdad.
  #11 (permalink)  
Antiguo 29/05/2011, 22:15
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Obtener redireccion url

Cita:
Iniciado por hackcrack Ver Mensaje
No tengo ni idea de como se usa, sino lo usaria pero no entiendo json la verdad.
Es facil es solo hacer

Código PHP:
Ver original
  1. <?php
  2. $aQue = "Google";
  3. $aKey = "TU_API_KEY";
  4. $aUrl = "http://ajax.googleapis.com/ajax/services/search/web";
  5. if (isset($_GET['q'])){
  6.    $aQue = urlencode($_GET['q']);
  7. }
  8. $data = file_get_contents($aUrl."?v=1.0&key=".$aKey."&q=".$aQue);
  9. $obj = json_decode($data);
  10. $results = $obj->responseData->results;
  11. for ($i=0; $i<sizeof($results); $i++) {
  12.     $tmp = $results[$i];
  13.     $tmpHTML.= "<a href=\"".$tmp->url."\">".$tmp->title."</a>";
  14.     $tmpHTML.= "<br />".$tmp->content."<br/>";
  15.     $tmpHTML.= "<i>".$tmp->url."</i><br /><br />";
  16. }
  17. echo $tmpHTML;
  18. ?>

Si solo queres el primer link haces un $tmp = $results[0];
  #12 (permalink)  
Antiguo 29/05/2011, 22:22
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 13 años
Puntos: 9
Respuesta: Obtener redireccion url

Me pone

Warning: file_get_contents(http://ajax.googleapis.com/ajax/services/search/web?v=1.0&key=AIzaSyD3vfubLUNwuByPXUY02XZfsnu1j5iI usE&q=google) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request in ...
  #13 (permalink)  
Antiguo 29/05/2011, 22:23
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Obtener redireccion url

Cita:
Iniciado por hackcrack Ver Mensaje
Me pone

Warning: file_get_contents(http://ajax.googleapis.com/ajax/serv...iIusE&q=google) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request in ...
Fíjate tu api key. si es valida. Sino hacedlo con Curl
  #14 (permalink)  
Antiguo 29/05/2011, 22:26
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 13 años
Puntos: 9
Respuesta: Obtener redireccion url

Si es valida, ya q si entro desde el navegador se mete lo mas bien
  #15 (permalink)  
Antiguo 29/05/2011, 22:31
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Obtener redireccion url

Cita:
Iniciado por hackcrack Ver Mensaje
Si es valida, ya q si entro desde el navegador se mete lo mas bien
Por ahi es el hosting, o lo estas probando desde localhost ?
  #16 (permalink)  
Antiguo 29/05/2011, 22:31
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 13 años
Puntos: 9
Respuesta: Obtener redireccion url

Era un error mio, ya lo solucione.

Sabes como hacer para q se muestre el primer resultado solamente? porq puse lo q me dijiste pero se muestran 4 resultado con la misma direccion
  #17 (permalink)  
Antiguo 29/05/2011, 22:34
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Obtener redireccion url

Yo no tuve problemas ingresándolo así, lógicamente desde localhost
Código PHP:
Ver original
  1. <?php
  2. $aQue = "forosdelweb";
  3. $aUrl = "http://ajax.googleapis.com/ajax/services/search/web";
  4. if (isset($_GET['q'])){
  5.    $aQue = urlencode($_GET['q']);
  6. }
  7. $data = file_get_contents($aUrl."?v=1.0&q=".$aQue);
  8. $obj = json_decode($data);
  9. $results = $obj->responseData->results;
  10. for ($i=0; $i<sizeof($results); $i++) {
  11.     $tmp = $results[$i];
  12.     $tmpHTML.= "<a href=\"".$tmp->url."\">".$tmp->title."</a>";
  13.     $tmpHTML.= "<br />".$tmp->content."<br/>";
  14.     $tmpHTML.= "<i>".$tmp->url."</i><br /><br />";
  15. }
  16. echo $tmpHTML;

Edito: te lo indicó solo toma el valor $results[0] o haz un break, ya que solo quieres tomar el primer valor
Código PHP:
Ver original
  1. <?php
  2. $aQue = "forosdelweb";
  3. $aUrl = "http://ajax.googleapis.com/ajax/services/search/web";
  4. if (isset($_GET['q'])){
  5.    $aQue = urlencode($_GET['q']);
  6. }
  7. $data = file_get_contents($aUrl."?v=1.0&q=".$aQue);
  8. $obj = json_decode($data);
  9. $results = $obj->responseData->results;
  10. $tmp = $results[0];
  11. $tmpHTML = "<a href=\"".$tmp->url."\">".$tmp->title."</a>";
  12. $tmpHTML .= "<br />".$tmp->content."<br/>";
  13. $tmpHTML .= "<i>".$tmp->url."</i><br /><br />";
  14. echo $tmpHTML;
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #18 (permalink)  
Antiguo 29/05/2011, 22:39
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 13 años
Puntos: 9
Respuesta: Obtener redireccion url

Claro pero asi se muestran varios resultados, y vos pusiste que si queria que muestre solo el prmero resultado le cambie el $i de results por un 0 pero eso producia que se muestre 4 veces l primer resultado. Termine haciendolo asi y quedo bien:

Cita:
<?php
$aQue = "google";
$aKey = "mykey";
$aUrl = "http://ajax.googleapis.com/ajax/services/search/web";
if (isset($_GET['q'])){
$aQue = urlencode($_GET['q']);
}
$data = file_get_contents($aUrl."?v=1.0&key=".$aKey."&q=". $aQue);
$obj = json_decode($data);
$results = $obj->responseData->results;
$tmpHTML.= "<i>".$tmp->url."</i><br /><br />";

$tmp = $results[0];
$tmpHTML.= "<i>".$tmp->url."</i><br /><br />";

echo $tmpHTML;
?>
  #19 (permalink)  
Antiguo 29/05/2011, 22:42
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Obtener redireccion url

Cita:
Iniciado por hackcrack Ver Mensaje
Claro pero asi se muestran varios resultados, y vos pusiste que si queria que muestre solo el prmero resultado le cambie el $i de results por un 0 pero eso producia que se muestre 4 veces l primer resultado. Termine haciendolo asi y quedo bien:
$results = $obj->responseData->results;
$tmpHTML.= "<i>".$tmp->url."</i><br /><br />";

$tmp = $results[0];
$tmpHTML.= "<i>".$tmp->url."</i><br /><br />";

echo $tmpHTML;

estas usando $tmpHTML.= "<i>".$tmp->url."</i><br /><br />"; antes de declarar $tmp, el codigo quedaria asi

$results = $obj->responseData->results;
$tmpHTML.= "<i>".$tmp->url."</i><br /><br />";

$tmp = $results[0];
$tmpHTML.= "<i>".$tmp->url."</i><br /><br />";

echo $tmpHTML;

remplazalo por

$results = $obj->responseData->results;

$tmp = $results[0];
$tmpHTML.= "<i>".$tmp->url."</i><br /><br />";

echo $tmpHTML;
  #20 (permalink)  
Antiguo 29/05/2011, 22:42
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 13 años
Puntos: 9
Respuesta: Obtener redireccion url

Ultima cosa y no te jodo mas que me ayudaste un montonaso ya. Tienes idea de como poner eso en una funcion, y llamarlo desde otro php agregandole la palabra a buscar?
  #21 (permalink)  
Antiguo 29/05/2011, 22:44
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 13 años
Puntos: 9
Respuesta: Obtener redireccion url

Cita:
Iniciado por marcofbb Ver Mensaje
$results = $obj->responseData->results;
$tmpHTML.= "<i>".$tmp->url."</i><br /><br />";

$tmp = $results[0];
$tmpHTML.= "<i>".$tmp->url."</i><br /><br />";

echo $tmpHTML;

estas usando $tmpHTML.= "<i>".$tmp->url."</i><br /><br />"; antes de declarar $tmp, el codigo quedaria asi

$results = $obj->responseData->results;
$tmpHTML.= "<i>".$tmp->url."</i><br /><br />";

$tmp = $results[0];
$tmpHTML.= "<i>".$tmp->url."</i><br /><br />";

echo $tmpHTML;

remplazalo por

$results = $obj->responseData->results;

$tmp = $results[0];
$tmpHTML.= "<i>".$tmp->url."</i><br /><br />";

echo $tmpHTML;
Claro si, eso me di cuenta cuando lo acababa de postear, ya lo corregi :D
  #22 (permalink)  
Antiguo 29/05/2011, 22:45
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Obtener redireccion url

Cita:
Iniciado por hackcrack Ver Mensaje
Ultima cosa y no te jodo mas que me ayudaste un montonaso ya. Tienes idea de como poner eso en una funcion, y llamarlo desde otro php agregandole la palabra a buscar?
Código PHP:
Ver original
  1. function buscar($aQue){
  2. $aUrl = "http://ajax.googleapis.com/ajax/services/search/web";
  3.  
  4. $data = file_get_contents($aUrl."?v=1.0&q=".$aQue);
  5. $obj = json_decode($data);
  6. $results = $obj->responseData->results;
  7. $tmp = $results[0];
  8. $tmpHTML = "<a href=\"".$tmp->url."\">".$tmp->title."</a>";
  9. $tmpHTML .= "<br />".$tmp->content."<br/>";
  10. $tmpHTML .= "<i>".$tmp->url."</i><br /><br />";
  11. echo $tmpHTML;
  12. }
  #23 (permalink)  
Antiguo 29/05/2011, 22:53
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 13 años
Puntos: 9
Respuesta: Obtener redireccion url

gracias ahora lo pruebo :D
  #24 (permalink)  
Antiguo 29/05/2011, 23:06
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 13 años
Puntos: 9
Respuesta: Obtener redireccion url

Funciona perfecto, gracias por toda la ayuda master ;)
  #25 (permalink)  
Antiguo 29/05/2011, 23:40
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 13 años
Puntos: 9
Respuesta: Obtener redireccion url

Che te hago una consulta, como hago para tomar el valor a buscar desde un form con input. Porq lo intente ya con el metodo post y el get. y toma bien el valor pero me da error 400 Bad Request, me muestra la url perfecta a la que tiene que entrar pero dice que no puede entrar mientras q si la pongo en el navegador se entra lo mas bien.
  #26 (permalink)  
Antiguo 30/05/2011, 10:42
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Obtener redireccion url

Cita:
Iniciado por hackcrack Ver Mensaje
Che te hago una consulta, como hago para tomar el valor a buscar desde un form con input. Porq lo intente ya con el metodo post y el get. y toma bien el valor pero me da error 400 Bad Request, me muestra la url perfecta a la que tiene que entrar pero dice que no puede entrar mientras q si la pongo en el navegador se entra lo mas bien.
Ami me anda de 10 :S

Código PHP:
Ver original
  1. <?php
  2. function buscar($aQue){
  3. $aUrl = "http://ajax.googleapis.com/ajax/services/search/web";
  4.  
  5. $data = file_get_contents($aUrl."?v=1.0&q=".$aQue);
  6. $obj = json_decode($data);
  7. $results = $obj->responseData->results;
  8. $tmp = $results[0];
  9. $tmpHTML = "<a href=\"".$tmp->url."\">".$tmp->title."</a>";
  10. $tmpHTML .= "<br />".$tmp->content."<br/>";
  11. $tmpHTML .= "<i>".$tmp->url."</i><br /><br />";
  12. echo $tmpHTML;
  13. }
  14. if($_POST['q'])
  15. {
  16. buscar('Arroz');
  17. exit();
  18. }
  19. ?>
  20. <form method="post">
  21. <input type="text" name="q" value="A buscar" />
  22. <input type="submit" name="buscar" value="Buscar" />
  23. </form>

Te recomiendo estudiar un poco mas PHP, ya que el foro es para aprender y no para que hagamos tus trabajos. Espero que lo tomes como una ayuda y no como algo para mal.

http://www.marcofbb.com.ar/aprender-...-manera-facil/

Saludos
  #27 (permalink)  
Antiguo 30/05/2011, 16:35
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 13 años
Puntos: 9
Respuesta: Obtener redireccion url

Volviste para ayudarme eres un groso!. Igual ya lo habia solucionado, era que yo ponia a buscar algo con espacio, ejemplo "mi perrito" entonces por eso generaba error, tenia que cambiar el espacio por "+".

Gracias por el gran laburo q te mandaste ayudandome, y si todavia me falta mucho q aprender de php, de a poco ire mejorando viendo ejemplos q es casi siempre lo q hago..gracias devuelta master ;)

Etiquetas: url, redireccionar
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 20:17.