En esta entrada vamos a Scrapear los resultados de Google utilizando PHP desde diferentes navegadores.
¿Cómo lo vamos a hacer?
Fácil, vamos a utilizar diferentes user-agent para rebuscar en los resultados de búsqueda de Google lo que nos interesa, así podremos ver en que posiciones está una página web para los diferentes navegadores, o para móviles o para tablets, o cualquier combinación entre ellos.
¿Qué necesitamos?
Necesitamos dos una librería que nos ayudará con esto.
La primera es simple_html_dom, la podéis encontrar en sourceForge o en Github, con una búsqueda os valdrá para localizarla y descargarla.
Esto no hace falta, me he adelantado a la segunda parte, utilizando curl y simple_html_dom 🙂 🙂
La segunda es random_user_agent, es una colección o lista de user agent que podrémos utilizar para realizar las búsquedas en Google.
La tenéis en git hub, random user agent collection
En esta linea es dónde la utilizamos y cambiamos el userAgent cada vez que realizamos una búsqueda.
curl_setopt( $ch, CURLOPT_USERAGENT, $userAgents );
Esta es la búsqueda que haremos en el buscador, debéis de modificarla a vuestro gusto.
$url =’https://www.google.es/search?num=100&espv=2&q=codifica.me+web&oq=codifica.me+web’;
Tiene dos keywords , la primera es codifica.me y la segunda es web. Qué corresponden a esta parte del código
q=codifica.me+web&oq=codifica.me+web
Esta parte hará que Google nos devuelva 100 resultados
num=100
Así mostrará una búsqueda después de Scrapear los resultados.
Y este es el código. Te lo cambio por una acción social . Gracias 🙂
[sociallocker]
require_once('simple_html_dom.php'); $url ='https://www.google.es/search?num=100&espv=2&q=codifica.me+web&oq=codifica.me+web'; $html = file_get_html($url); $linkObjs = $html->find('h3.r a'); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> </head> <body> <?php foreach ($linkObjs as $linkObj) { $title = trim($linkObj->plaintext); $link = trim($linkObj->href); $Googlelink = $link; if (!preg_match('/^https?/', $link) && preg_match('/q=(.+)&sa=/U', $link, $matches) && preg_match('/^https?/', $matches[1])) { $link = $matches[1]; } else if (!preg_match('/^https?/', $link)) { continue; } $google ='https://www.google.es'; echo '<p><b>Titulo:</b> ' . $title . '<br />'; echo '<b>Link: </b>' . $link . '<br/>'; echo '<b>Enlace Google</b>: '. $google . $Googlelink . '</p>'; } ?> </br> </body> </html> |
[/sociallocker]