2011-05-16 12 views
6

Necesito ayuda para extraer URL de los resultados de búsqueda de Google y me dijeron que use Nokogiri. Lo instalé y leí los documentos de Nokogiri, pero no tengo idea de por dónde empezar; todo es griego para mí.¿Cómo puedo analizar los resultados de búsqueda de Google con Nokogiri?

Sé lo que estoy buscando es la URL de cada resultado, cada uno existente entre una etiqueta <cite>. Hasta ahora, todo lo que pude averiguar es cómo sacar los resultados de la búsqueda, pero no sé cómo obtener datos específicos del archivo. Aquí es el bit pequeñito-minúsculo de código que hacer tienen:

serp = Nokogiri::HTML(open("http://www.google.com/search?num=100&q=stackoverflow")) 
+1

Investigar el uso de métodos de acceso Nokogiri de CSS. Son muy poderosos y pueden ayudarlo a hacer rodar rápidamente. A partir de ahí, tendrás que profundizar en XPath, ya que así es como a menudo vamos detrás de los nodos, ya sea que estén en HTML o XML. XPath es mucho más poderoso que CSS, pero ese poder viene con mayor complejidad. Además, como una sugerencia de usabilidad, 'at' encuentra la primera aparición de algo como' Node', y 'search' encuentra todas las ocurrencias, devolviendo un' NodeSet'. NodeSet es como una matriz de nodos para que pueda iterar sobre ella. –

Respuesta

10

disfrutar :)

require 'open-uri' 
require 'nokogiri' 

page = open "http://www.google.com/search?num=100&q=stackoverflow" 
html = Nokogiri::HTML page 

html.search("cite").each do |cite| 
    puts cite.inner_text 
end 

también un vistazo a nokogiri tutorials

+0

No para reactivar una publicación anterior, pero ¿sabe si hay una forma moderna de controlar la cantidad de resultados de los resultados de Google? La cadena num query ya no funciona. –

+0

@DaveLong funciona para mí, pero creo que hay un límite estricto de 100 resultados – makevoid

+0

Esto no parece funcionar más, a Google no le gusta el análisis sintáctico –

Cuestiones relacionadas